梁山1号 2024-03-25 14:03 采纳率: 30%
浏览 27
已结题

怎么在荔枝派zero开发板里运行大疆的PSDK程序

目前在虚拟机上根据大疆的教程已经可以成功运行PSDK和飞机通信,想要在荔枝派zero开发板里运行的话需要怎么修改或移植

  • 写回答

20条回答 默认 最新

  • 码农阿豪@新空间代码工作室 Java领域优质创作者 2024-03-25 14:04
    关注
    获得0.30元问题酬金
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    问题解答:
    1. 首先需要确认荔枝派zero的硬件平台是否符合PSDK的要求,例如CPU型号、内存和存储容量等。如果硬件不支持PSDK所需的要求,则无法进行移植。
    2. 若硬件符合要求,则需要将PSDK的相关库文件和头文件移植到荔枝派zero的开发环境中,例如移植DJI_SDK库。
    3. 需要在荔枝派zero的开发环境中配置好PSDK相关的编译器、链接器及相关选项,例如编译器选项、库文件链接选项等。
    4. 在荔枝派zero上编写程序代码,调用PSDK提供的API接口,实现与飞行器的通信交互。
    5. 在荔枝派zero上安装相应的驱动程序,例如USB驱动程序,确保荔枝派zero与飞行器的连接正常。 案例:移植DJI_SDK库 首先,在荔枝派zero上下载所需的DJI_SDK库文件,将其拷贝到开发环境中。 其次,配置开发环境的编译器选项、链接器选项和库文件路径等。例如,在Makefile中添加如下配置项:
    SDK_LIB := $(PWD)/DJI_LIB
    SDK_INC := $(PWD)/DJI_INC
    CC := $(CROSS_COMPILE)gcc
    CFLAGS := -I$(SDK_INC) -Wall -Werror
    LDFLAGS := -L$(SDK_LIB) -ldjiosdk-core
    

    然后,在荔枝派zero上编写程序代码,调用DJI_SDK库提供的API接口进行飞行器和地面站的交互,例如调用以下API函数:

    unsigned char modifiedData[32];
    djiosdk_ack rcvack;
    djiosdk::DJIOSDK sdk;
    sdk.init(serial_device, baud_rate);
    if (sdk.isOpen()) {
        std::cout << "sdk is open :)" << std::endl;
    }
    sdk.requestDataFromMobile(0, strategy, freq, ack);
    sdk.sendDataToMobile(modifiedData, sizeof(modifiedData), NULL);
    rcvack.ack = 0x80;
    sdk.waitForMobileCallback(strategy, ack, Timeout, &rcvack);
    

    最后,编译程序并在荔枝派zero上运行,测试与飞行器的通信是否正常。

    评论

报告相同问题?

问题事件

  • 系统已结题 4月2日
  • 赞助了问题酬金15元 3月25日
  • 创建了问题 3月25日

悬赏问题

  • ¥15 winFrom界面无法打开
  • ¥15 crossover21 ARM64版本安装软件问题
  • ¥15 mymetaobjecthandler没有进入
  • ¥15 mmo能不能做客户端怪物
  • ¥15 osm下载到arcgis出错
  • ¥15 Dell g15 每次打开eiq portal后3分钟内自动退出
  • ¥200 使用python编写程序,采用socket方式获取网页实时刷新的数据,能定时print()出来就行。
  • ¥15 matlab如何根据图片中的公式绘制e和v的曲线图
  • ¥15 我想用Python(Django)+Vue搭建一个用户登录界面,但是在运行npm run serve时报错了如何解决?
  • ¥15 QQ邮箱过期怎么恢复?