【举报再看养成习惯,噢 不对,点赞再看 养成习惯。感谢支持】
首先:飞控只是一个开发板,大家都可以开发!开发就要把自己的程序下载进去,所以我们来看一下在没有Jlink帮助,只使用飞控上的USB口升级飞控固件的办法。
当前市面上主流飞控都是DFU升级,我之前做过的项目中也有使用dfu升级固件的,但都是使用Dfuse demo工具升级的【如下图所示】。升级使用的文件后缀也是.dfu。
所以我就好奇,为什么bf软件使用DFU的方式升级,使用的却是hex文件?
没想到这个探究过程解开了我另一个疑惑点:为什么要使用zdaig替换驱动!什么情况下才要使用zadig!
==========================分割线===========================
其实使用DFU模式下载程序有两种途径,除了上述的使用Dfuse demo工具下载.dfu格式的文件之外,还可以通过STM32CubeProgrammer软件下载很多种格式的文件。
那么也就是说BF是使用了上图中的第一种技术来完成飞控固件升级的。
==========================分割线===========================
至于为什么要使用Zadig工具,是因为上面提到的两种升级工具要配合不同的升级驱动!而Zadig可以一键替换驱动。一般是将Zadig工具使用的驱动卸载并且安装STM32CubeProgrammer软件使用的驱动。
==========================分割线===========================
已知STM32的DFU模式是不会被破坏的!
已知上述条件我们能有什么骚操作?
再也不用担心飞控变砖!将飞控玩弄于股掌之间,再也不怕刷固件!
我就是点灯工程师的化身!
可以对飞控进行重新开发!
不需要jlink我们也可以下载程序进支持DFU的芯片!
下面,我把飞控烧成砖来教你升级!
一、首先取一块正常的飞控,然后刷入使LED每秒钟闪烁一次的程序!或者刷入其他版本的固件【相当于飞控变砖,不能正常链接BF进行调参了】。
1、按住飞控板上的Boot按键进入DFU模式
2、使用BF软件从本地电脑加载固件 ,烧写固件
3、等待烧写完成,可以看到飞控板Led在闪烁,并且无法进入调参界面
二、然后再次刷入正常飞控程序,会发现飞控又恢复为正常功能。
1、按住飞控板上的Boot按键进入DFU模式
2、使用BF软件从本地电脑加载固件 ,烧写固件
3、等待烧写完成,可以看到飞控板恢复为正常的工作状态,USB恢复正常,可以进行调参