用STM32Discovery开发板 刷Pixhawk飞控Bootloader

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

pixhawk教程-用STM32Discovery开发板刷Pixhawk飞控Bootloader
一直想玩PX4和Pixhawk,但是手头又没有飞控的板子,3DR官网上卖的好贵。

不过好在万能的淘宝上有网友山寨版,大概价格四百多吧,这个价格还是蛮合理的,PX4的飞控板是四层板,电源什么的器件用料够足…后来跟朋友一起做了一版改进的,也是四层板,不过板子还没打出来。

如果是买的PX4的板子第一件事肯定是连接上位机更新固件啦,不过我们是自己做,一开始单片机没有固件和bootloader,连接pc是没有任何反应的,一定要先刷bootloader,这个bootloader 就是关于单片机启动方式等的一些配置。

偶然间发现官方WIKI上居然有STM32F4 discovery开发板刷PX4 Bootloader的教程。

按照教程搞发现他提供链接的toochain0.7版本早就不在了,经过我的摸索,终于配置好了所有需要的代码和编译环境。

如果你有以下这块板子,那么你也可以试着刷一下px4的bootloader跑一下NUTTX的系统。

查看原教程的地址
需要的硬件需要准备一下的东西来运行并且将Discovery开发板通过串口连接PC操作
NuttX的终端 :
∙STM32F4DISCOVERY开发板
∙Mini USB数据线一根(接在左侧连接STLink)
∙Micro USB数据线一根 (接在右侧连接单片机USB )
∙一个串口ttl转232电平的模块,用于连接单片机的串口到windows串口助手(我直接用无线串口数传模块)
注意: 单片机串口电压是3.3v而电脑串口电压是( -12V to +12V) 直接连接电脑估计就冒烟了…恩需要的软件
需要下载以下的软件工具:
∙ST-LINK/V2 USB driver (Windows XP, Vista, and 7)OR ST-LINK/V2 USB driver (Windows 8)
∙STM32 ST-LINK utility
∙PX4 Toolchain Installer v0.6
(官方这个连接失效了!这么重要的东西…估计以前的代码是苏黎世理工搞的现在域名迁移到之后没人维护过来,没关系我们下载其他版本的然后再下载对应代码折腾一下
下载这个吧PX4 Toolchain Installer v13 for Windows Download这个其实就是windows toolchain)
∙PX4FMU & PX4FLOW drivers(wait until after the PX4 bootloader has been flashed to install this)
∙下面这四个是我加的,免去GitHub克隆
∙Bootloader文件夹
∙Firmware文件夹(注意这个不是px4的代码,而是另一个分支
https:///px4/firmware/tree/discovery,然后再下载一份Nuttx源码放进
Firmware,我分享这份已经弄好了)
把以上的东西都安装好,进入PX4 Toolchain Installer安装后的文件夹,默认路径应该是
C:\px4(我安装到了C:\px4\ToolChain\px4,后文都是这个路径下操作)在这个路径下找到
px4_console
运行后的
px4_console:因为官方的ToolChain0.7不好用,所以接下来我们要配置这些源码,把下载下来的以下三个文件夹拷
贝进C:\px4\ToolChain\px4
进入Firmware后执行make archives指令,然后估计要等几分钟了,如图:
进入libopencm3文件夹执行make lib
进入Bootloader文件夹执行make
我们已经可以看到可以刷进单片机的bin,后面就是使用刚才下载的ST官方工具通过板子上的ST-Link 把bootloader程序刷进去,用miniUSB线把板子连上电脑可以在设备管理器里看到:
运行ST-LINK Utility工具,在开始菜单中找到STMicroelectronics点击
Target»Co nnect() Discovery板将会连接,并且显示起始地址是0x08000000. 如果没有正常连接检查一下接线(STLink的两个跳线帽)和驱动是否正常。

∙把芯片擦除. 点击Target»Erase Chip.
∙擦除芯片之后, 就该刷 PX4 bootloader了. 点击Target»Progr am & Verify然后在编译好的路径中找到Bootloader的bin文件“px4discovery_bl.bin”. 默认情况下应该在刚才的
Bootloader文件夹里.选好路径点
击Start.
∙当完成上面这一步之后你会看到紧挨着STM32F407的橘黄色LED开始闪烁如果没有的话,点击一下黑色的复位键。

现在你可以点击Target»Disconnect断开连接然后关闭 STM32 ST-LINK Utility.
∙现在你可以插上microUSB的线(miniUSB线不能断,用来供电).打开设备管理器找到一个没有正确安装驱动的设备. 如果你已经正确安装了PX4FMU & PX4FLOW drivers这里会直接显示是 PX4 FMU COM port
刷PX4 固件
刚才Bootloader刷完了,该刷固件了。

∙通过 MiniUSB线连接板子,断开microUSB
∙打开刚才的PX4 Console 然后进入Firmware目录cd Firmware.输入make px4-stm32f4discovery_default upload. 需要等一小会
∙当 upload build完成之后 ,程序会查找PX4 FMU串口COM ports.现在插上microUSB 线。

upload 进程会识别板子并且开始刷新固件
这里我遇到了一个错误,好像是字符格式引起的,不过追踪到那行发现是句回显语句,果断注释掉就OK了!
通过串口连接板子上的Nuttx终端
最后一步是通过串口连接板子上的Nuttx终端。

Nuttx是个挺强大的系统,去官网看了下居然支持x86平台,不过国内没什么资料,搞的人不多。

通过串口可以像linux一样操作单片机,支持一些shell命令。

这里需要一个ttl转232或者usb的小板子,也可以像我一样用串口无线透传模块连接板子的USART 2 (pins PA2/PA3 for TX/RX)
建议串口助手用自带的Tera Term或者windows的超级终端,一般的串口助手不太好用,可以去百度下一个,按照以下配置。

复位后板子启动会先闪几秒黄灯(启动bootloader)之后几秒NuttX终端就会打印出来啦。

是不是很类似Linux呢!?哈哈,到这一步真的很开心啊。

我们可以试试其他指令,输入help会显示支持的指令:。

相关文档
最新文档