STM32L4开机不启动

2019-07-14 14:42发布

大家好!我最近遇到一个奇怪现象。测试2块板子,出现了相同状态,没敢继续测了。
电路板已经测试过几个月,一直正常运行,这两天在测试IAP跳转的时候改动了时钟配置,增加了一条HAL_RCC_DeInit();,重新烧写到CPU之后,启动,情况还好,再次启动就不行了。我量了复位脚,果然不正常。波形如下,大家帮我看下怎么回事??




友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
TOPCB
1楼-- · 2019-07-14 20:26
楼主可能是因为代码的问题,测试以前正常的程序,如果没有问题。就按照楼上的方法测试。
yysdywerw
2楼-- · 2019-07-15 00:32
我测试了以前的代码,也测试了单独串口输出的代码,全部都无法运行了。就像是硬件被烧毁了一样。但是我把整个FLASH都擦除,然后烧写到80000000的时候,又可以运行。
TOPCB
3楼-- · 2019-07-15 05:11
HAL_RCC_DeInit();是在IAP里面加的,你换IAP程序了吗?
yysdywerw
4楼-- · 2019-07-15 09:16
TOPCB 发表于 2019-1-9 11:57
HAL_RCC_DeInit();是在IAP里面加的,你换IAP程序了吗?

HAL_RCC_DeInit();是加在了Bootloader里面的,APP里面有时钟配置程序。同样的程序(Bootloader和APP)拷贝到其他板子上面我也测试过了,能正常运行。目前发现3个芯片会出现这种情况,而且在我烧写Flash的时候出现了写保护错误。这个很难再碰到。每次碰到这个错误就会再也无法正常使用了。

另外还有一个情况,我的APP有时候无法跳转,运行完Bootloader之后,就卡住了。然后重启一下,重新上电,又能够运行。
代码太复杂就没有贴。
TOPCB
5楼-- · 2019-07-15 11:43
这个在APP重新初始化时钟即可。按照这样的测试,猜测还是因为时钟停止工作后,导致程序不运行。看一下HAL_RCC_DeInit()以后,是不是所有的晶振(内部和外部的)都不工作了,这样的话芯片就不能正常工作了。
lee_st
6楼-- · 2019-07-15 13:48
 精彩回答 2  元偷偷看……

一周热门 更多>