利用eclipse,在Firmware/src/examples下新建一个文件夹,命名为helloworld,里面创建一个helloworld.c,该程序是在输入helloworld命令的时候输出Hello World:
#include <px4_config.h> #include <px4_tasks.h> #include <px4_posix.h> #include <unistd.h> #include <stdio.h> #include <poll.h> #include <string.h> __EXPORT int helloworld_main(int argc, char *argv[]); int helloworld_main(int argc,char *argv[]) { PX4_INFO("Hello World!"); return OK; }
新建一个helloworld.c的时候,必须要有一个CMakeLists.txt,将模块儿加入PX4中,CMakeLists.txt内容如下:
px4_add_module( MODULE examples__helloworld MAIN helloworld STACK_MAIN 2000 SRCS helloworld.c DEPENDS platforms__common ) # vim: set noet ft=cmake fenc=utf-8 ff=unix :
在编译文件中将helloworld.c路径添加进去,打开D:\pixhawk\Firmware\cmake\configs\nuttx_px4fmu-v2_default.cmake文件,
在#examples/px4_simple_app后面紧接着添加:
examples/helloworld注意,该代码不能放置在文件最后一行,否则不能编译通过。
在PX4 Consol中输入 make px4fmu-v2_default upload
上传成功后如下:
pixhawk接入电脑,注意要拔下SD卡,拔下时进入nsh命令,不拔时采用mavlink协议传输数据,新版本会默认采用mavlink协议。
打开PX4 Toolchain->TeraTerm
Setup->serial port,设置如下,波特率推荐的57600,其实默认的115200在这里也可以:
按回车,出现nsh>
查询可用指令:
? 输入helloworld:
进入nsh可以查看固件版本:
ver all