努力学习,珍惜时间;全力以赴,创造未来
克制欲望,摒除心魔;心向何处,往来圣贤
功崇惟志,业广惟勤;惟克果断,乃罔后艰
面临困难,切莫不安;由浅入深,抽丝剥茧
持之以恒,攻坚克难;绳锯木断,水滴石穿
一日三省,积累经验;博学笃志,刻苦钻研
劝君牢记,戒骄戒懒;一生勤勉,无愧世间

  1. 先将 Firmware源代码导入 VScode 中,具体步骤为:
  • 打开 VScode,进入软件主界面,如果进入的不是主界面,就按快捷键 Ctrl+Shift+N来进入主界面,如下图所示:

    图1 VScode主界面
  • 点击界面中的 Add workspace folder, 选择 Firmware所在的文件夹,然后点击右
    下角的 Add即可添加固件代码。添加完了之后,就可以看到软件左栏有代码目录:

    图2 选择目录
  1. 现在在代码中添加一个简单的应用程序(demo),主要步骤如下:
  • 第一步,在 VScode 左栏代码目录中找到目录:Firmware/src/examples/, 在该目录下新建一个子目录,可以命名为:my_example_app;
  • 第二步,在新建的目录下,新建一个c文件,可以命名为:my_example_app.c;
  • 第三步,打开新建的c文件,并填入以下代码:
    /****************504实验室************************* Date:2020年9月3日File name:my_example_app.cAuthor: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_appMAIN my_example_appSTACK_MAIN 2000SRCSmy_example_app.cDEPENDSplatforms__common)

Cmakelist 文件用于编译,也是新建模块时必不可少的一个文件。

  1. 查看代码运行的效果
    如果想从仿真中查看的话,需要进入文件夹: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仿真效果图 如果需要在飞控板中运行,则打开同目录下的文件`nuttx_px4fmu-v2_default. cmake`, 同样添加代码:

examples/my_example_app

编译下载代码到飞控板子上,然后连接飞控与计算机,打开 QGC 地面站,进入Analyse-->Mavlink Console, 这个 Console就是前面说的控制台,在控制台下先输入help, 可以看到可以启动的模块,然后再输入指令my_example_app, 可以看到上面同样输出了:

Hello Sky!

图4 控制台界面

  1. VScode 的一些使用技巧
  • Ctrl+Shift+L选中文件中所有同名变量;
  • 快速注释:先 Ctrl+K, 再Ctrl+C;
  • 快速取消注释:先Ctrl+K, 再Ctrl+U;
  • 撤回:Ctrl+Z;
  • 取消撤销:Ctrl+Y

PX4飞控学习与开发(六)-利用 VScode 修改源码相关推荐

  1. 【PX4 飞控二次开发】自制ESP8266WIFI数传

    感觉和这个类似 https://blog.csdn.net/sinat_16643223/article/details/118649889 是不是其实那些那么大的wifi数传板子本质和核心就是这个, ...

  2. ios开发学习-手势交互(Gesture)效果源码分享

    qianqianlianmeng ios开发学习-手势交互(Gesture)效果源码分享 All Around Pull View 介绍:实现视图四个方向(上下左右)都能够拖动更新(pull to r ...

  3. MultiRow发现之旅(六)- 使用MultiRow开发票据应用(附源码)

    前文回顾 MultiRow发现之旅(一)- 高效模板设计器 MultiRow发现之旅(二)- 详解属性管理器 MultiRow发现之旅(三)- 模板管理器和Table MultiRow发现之旅(四)- ...

  4. 基于小程序云开发的在线答题小程序源码含答题分类答题记录错题集适合学习适合毕业设计使用

    基于小程序云开发开发的在线答题小程序源码 核心功能: 1.答题分类 2.开始答题 3.答题评分 4.答题记录 5.错题集 部分界面截图: 如有疑问,可联系博主!

  5. Android 8.0学习(32)---Android 8.0源码目录结构详解

    Android 8.0源码目录结构详解 android的移植按如下流程:     (1)android linux 内核的普通驱动移植,让内核可以在目标平台上运行起来.     (2)正确挂载文件系统 ...

  6. 如何利用教育网站源码成功搭建在线教育网站

    如今是一个信息化时代,人们都想接受各种各样的教育,在线教育也就因此发展了起来,并且逐渐成为了一种趋势.而成熟的在线教育网站皆是由高质量的教育网站源码搭建而成的.如何利用教育网站源码成功搭建在线教育网站 ...

  7. 暑期Android游戏开发——小兔子跳铃铛(附源码)

    暑期Android游戏开发--小兔子跳铃铛(附源码) 一. 背景说明 我在南京的一所高校学习软件工程.学院里每年会举行一次"创新杯"软件比赛,鼓励同学自主学习和创新.我和几个好兄弟 ...

  8. java计算机毕业设计计算机课程在线培训学习管理系统MyBatis+系统+LW文档+源码+调试部署

    java计算机毕业设计计算机课程在线培训学习管理系统MyBatis+系统+LW文档+源码+调试部署 java计算机毕业设计计算机课程在线培训学习管理系统MyBatis+系统+LW文档+源码+调试部署 ...

  9. 微信小程序:二开版优化新紫色UI云开发新款壁纸小程序源码

    这是一款由旧版https://airymz.com/3387.html进行优化二开的一个新版本 本壁纸表情包头像小程序采用(dcloud云开发)所以无需服务器与域名 无需服务器.无需域名.云开发直接上 ...

  10. 二开版优化新紫色UI云开发新款壁纸小程序源码支持用户投稿在线审核

    本壁纸表情包头像小程序采用(dcloud云开发)所以无需服务器与域名 无需服务器.无需域名.云开发直接上线 特点:支持用户投稿,后台审核后会发订阅消息给用户提示作品审核状态,增加用户粘性,支持后端修改 ...

最新文章

  1. 记一次单机系统的性能优化:最后竟是 TCP 的锅
  2. 8坨穿越千年的便便,让哈佛科学家找到治疗糖尿病的线索 | Nature
  3. 字节跳动 ClickHouse 在实时场景中的应用和优化实践
  4. 未来,让我们一起想象 — “Imagine” 阿里云视频云全景创新峰会
  5. 3.4 内置函数(1)
  6. lxml学习【未完成】
  7. 如何显示python的内置模块_Python 如何查看Python自带的模块 - 弟球嗑学
  8. P5154 数列游戏(区间dp)
  9. MatLab深度学习入门
  10. 华为BIOS系统升级
  11. 50行python代码写个计算器教程
  12. 用PS怎样把图片改为100k的图片
  13. Gradle之maven-publish插件发布到nexus私有仓库
  14. 2018年年末总结及2019年规划
  15. Downloading https://ultralytics.com/assets/Arial.ttf to /data/..../.config/Ultralytics/Arial.ttf
  16. 十七、电话号码的字母组合
  17. Streamline(流线),Pathline(迹线),Streakline(脉线) and Timeline(时间线)
  18. 如何在自己的网站加入qq在线交谈功能
  19. C语言 数组的指针和指向数组的指针变量
  20. 【电子电路】(1)PWM转DAC如何实现

热门文章

  1. 拆一台微型计算机步骤,台式微型计算机拆装.doc
  2. jw实验二:配置VLAN Trunks
  3. 川大计算机类专业的录取分数线,四川大学重点专业排名及录取分数线
  4. centos7上装qt5.15.2
  5. 小公司程序员怎么进大公司
  6. airflow 的使用之 Operators 介绍
  7. css竖向箭头符号_「右箭头符号」html实现右箭头 - seo实验室
  8. 大一c语言论文700字,大二学年学生自我鉴定范文700字
  9. 利用第三方Cookie和iframe完成广告显示(各大网站就是利用了第三方Cookie和iframe来显示百度和京东的广告)
  10. IELTS-writing exercise Expository_Text_18