STM32F429选项字节Option Bytes的初浅认识,解决无限重启的死循环问题。

STM32F429选项字节Option Bytes的初浅认识,解决无限重启的死循环问题。

STM32F429选项字节Option Bytes的初浅认识,解决无限重启的死循环问题。
首先晒一下来自STM32 ST-LINK Utility读取正确的选项字节的截图,需要用到usb 的ST-Link,将SWCLK连接到PA14,SWDIO连接到PA13:STM32F429选项字节Option Bytes的初浅认识,解决无限重启的死循环问题。_第1张图片
在STM32Cube中的截图:STM32F429选项字节Option Bytes的初浅认识,解决无限重启的死循环问题。_第2张图片
因为我的电路板是没有STlink接口的,用了漆包线焊接出来的方法调试用,管脚实在太小了焊接十分困难,如果你不是焊接高手要谨慎操作:看图片:STM32F429选项字节Option Bytes的初浅认识,解决无限重启的死循环问题。_第3张图片
是不是几乎看不到2条漆包线,对于一个眼睛老花的人来说,数过去第几只真的很难,完全凭感觉。
因为平时都是使用串口刷机的,用的刷机软件当然是FlyMcu,一直都是好好的刷机,不知道哪一次开启了他的选项字节,应该是换了电脑,重新拷贝过来FlyMcu,它默认是开启选项字节的,刷了后就产生了刷入程序后不能正常运行的情况,反复琢磨好几天,发现STM32的复位管脚电压是1.56V,而非正常的3.3V,

看复位引脚波形:在这里插入图片描述
发现每10ms就复位一次,那程序还怎么跑啊,当然也确实发现10ms内可以运行部分功能的,比如点亮一个LED灯之类。
反复用FlyMcu改变选项字节来尝试修复,都是徒劳,并且只要改变选项字节都会存在刷机到0kB就错误的问题,用自己C#写的程序(可以对STM32F,STM32L系列进行刷机的软件,Stm32BootLoader.exe,可以在我的下载中去下载,这个程序还可以手动开关DTR,RTS)写入读保护,再去掉读保护的方法来全局格式化存储方法解决0kB错误的问题。
产生这个问题后反复尝试了各种方法解决,都是以失败告终,最后还是决定用ST-link Utility来查看是否是选项字节问题引起的,焊接了前面提到的漆包线的方法,先看看第一次进去看到的选项字节情况:STM32F429选项字节Option Bytes的初浅认识,解决无限重启的死循环问题。_第4张图片
原始的图好像忘记截图了,实际上DB1M这个选项是没有打开的,下面也没有保护的勾选。
再来看看几个可变的选项的功能吧:
STM32F429选项字节Option Bytes的初浅认识,解决无限重启的死循环问题。_第5张图片
这个选项说的是选中的状态:当CPU在STOP模式下不会被看门狗中断重启,不选中,在CPU关机状态还是会被看门狗重启。
STM32F429选项字节Option Bytes的初浅认识,解决无限重启的死循环问题。_第6张图片
这个选项说的是选中的状态:当CPU在待机模式下不会被看门狗中断重启,不选中,在CPU待机模式还是会被看门狗重启。
STM32F429选项字节Option Bytes的初浅认识,解决无限重启的死循环问题。_第7张图片
这个选项说的是选中状态使用软件看门狗,软件中不打开狗,看门狗就不会起作用。不选中的话硬件开启看门狗,也就是开机直接开启看门狗,我去掉了勾选,测试了一下,看图:在这里插入图片描述
每603ms复位一次,当然看门狗的时间是可以通过程序配置的,我是没有配置直接看了一下。
再来看看困扰我好几天的这个重要选项吧:
STM32F429选项字节Option Bytes的初浅认识,解决无限重启的死循环问题。_第8张图片
选中后将从bank2启动,我根本程序不在bank2,不过也奇怪的是程序实际上是执行的,只是10ms后被复位了,所以这个选项不能选中,不过就算选中是不是也不应该重启,就算要重启,也不应该执行bank1的程序,不明白。
STM32F429选项字节Option Bytes的初浅认识,解决无限重启的死循环问题。_第9张图片
这个选项是把空间分成bank1,bank2两个空间的。
再看看尝试使用FlyMcu软件恢复选项字节,尝试最终没有成功。STM32F429选项字节Option Bytes的初浅认识,解决无限重启的死循环问题。_第10张图片
DB1M选项始终无法修改,如果你有好的方法也麻烦给我留言,谢谢了。
在flymcu软件的选项中的用户选项字节可以自己修改数值,每一个bit的功能是:
位7软狗 位6STOP不复位 5StandBy不复位 位4BFB2 3BOR 2BOR 1 0
位4可以关闭,程序可以跑起来,但有大概一半空间被保护了,还没有琢磨清楚,得仔细看看手册。
总结一下,用Flymcu刷机,千万不要开选项字节,否则会引起一些莫名其妙的问题不好解决,如果真的碰到了,还是可以用STM32 STlink Utility软件来解决,需要ST-link工具。好了,望与大家一起进步,总结一下,免得后面自己都忘记了,有错误的地方望指教,谢谢!

你可能感兴趣的:(硬件工程)