努力学习,珍惜时间;全力以赴,创造未来
克制欲望,摒除心魔;心向何处,往来圣贤
功崇惟志,业广惟勤;惟克果断,乃罔后艰
面临困难,切莫不安;由浅入深,抽丝剥茧
持之以恒,攻坚克难;绳锯木断,水滴石穿
一日三省,积累经验;博学笃志,刻苦钻研
劝君牢记,戒骄戒懒;一生勤勉,无愧世间
- 先将 Firmware源代码导入 VScode 中,具体步骤为:
- 打开 VScode,进入软件主界面,如果进入的不是主界面,就按快捷键 Ctrl+Shift+N来进入主界面,如下图所示:
图1 VScode主界面
- 点击界面中的
Add workspace folder
, 选择Firmware
所在的文件夹,然后点击右
下角的Add
即可添加固件代码。添加完了之后,就可以看到软件左栏有代码目录:
图2 选择目录
- 现在在代码中添加一个简单的应用程序(demo),主要步骤如下:
- 第一步,在 VScode 左栏代码目录中找到目录:
Firmware/src/examples/
, 在该目录下新建一个子目录,可以命名为:my_example_app
; - 第二步,在新建的目录下,新建一个
c
文件,可以命名为:my_example_app.c
; - 第三步,打开新建的
c
文件,并填入以下代码:
/****************504实验室*************************
Date:2020年9月3日
File name:my_example_app.c
Author:sjm
说明:文件用于测试Pixhawk代码
********************************************************/
#include <px4_posix.h>//包含了打印信息函数:PX4_INFO
__EXPORT int my_example_app_main(int argc, char *argv[]);
int my_example_app_main(int argc, char *argv[])
{
PX4_INFO("Hello Sky!");
return OK;
}
需要说明的是:以上代码是让系统控制台在调用 my_example_app
指令时,打印信息 Hello Sky
,控制台在 QGC 地面站中,后续会具体说明;此外,这些信息是在主函数命名的,主函数命名方式为 C文件的名称 + _main, 这样在控制台输入命令时,就可以从该入口进入函数。最后,文件开始的注释说明其实可以使用 Snippet 插件,这样一次设置好后,以后可以快捷调用。
- 第四步,仍在该目录下,新建一个 txt文件,名为:CmakeLists.txt,里面写入以下代码:
######################504实验室##########
#Date:2020年9月3日
#File name:CmakeList.txt
#Author:sjm
#说明:文件用于测试Pixhawk代码的编译内容
##################504实验室################
PX4_add_module(
MODULE examples__my_example_app
MAIN my_example_app
STACK_MAIN 2000
SRCS
my_example_app.c
DEPENDS
platforms__common
)
Cmakelist 文件用于编译,也是新建模块时必不可少的一个文件。
- 查看代码运行的效果
如果想从仿真中查看的话,需要进入文件夹:Firmware/cmake/configs/
, 并打开文件:posix_sitl_default.cmake
, 添加下面一行代码:
examples/my_example_app
然后打开终端,进入Firmware文件夹
,输入指令: make posix_sitl_default jmavsim
, 即打开仿真环境,过一会直接输入指令:my_example_app
,即可看到终端窗口输出了
Hello Sky!
, 如图3所示:
图3 jMAVSim仿真效果图
examples/my_example_app
编译下载代码到飞控板子上,然后连接飞控与计算机,打开 QGC 地面站,进入Analyse-->Mavlink Console
, 这个 Console
就是前面说的控制台,在控制台下先输入help, 可以看到可以启动的模块,然后再输入指令my_example_app
, 可以看到上面同样输出了:
Hello Sky!
图4 控制台界面
- VScode 的一些使用技巧
Ctrl+Shift+L
选中文件中所有同名变量;- 快速注释:先
Ctrl+K
, 再Ctrl+C
; - 快速取消注释:先
Ctrl+K
, 再Ctrl+U
; - 撤回:
Ctrl+Z
; - 取消撤销:
Ctrl+Y