完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
大家好!我最近遇到一个奇怪现象。测试2块板子,出现了相同状态,没敢继续测了。
电路板已经测试过几个月,一直正常运行,这两天在测试IAP跳转的时候改动了时钟配置,增加了一条HAL_RCC_DeInit();,重新烧写到CPU之后,启动,情况还好,再次启动就不行了。我量了复位脚,果然不正常。波形如下,大家帮我看下怎么回事?? |
|
相关推荐
8个回答
|
|
|
|
|
|
楼主可能是因为代码的问题,测试以前正常的程序,如果没有问题。就按照楼上的方法测试。
|
|
|
|
我测试了以前的代码,也测试了单独串口输出的代码,全部都无法运行了。就像是硬件被烧毁了一样。但是我把整个FLASH都擦除,然后烧写到80000000的时候,又可以运行。
|
|
|
|
HAL_RCC_DeInit();是在IAP里面加的,你换IAP程序了吗?
|
|
|
|
HAL_RCC_DeInit();是加在了Bootloader里面的,APP里面有时钟配置程序。同样的程序(Bootloader和APP)拷贝到其他板子上面我也测试过了,能正常运行。目前发现3个芯片会出现这种情况,而且在我烧写Flash的时候出现了写保护错误。这个很难再碰到。每次碰到这个错误就会再也无法正常使用了。 另外还有一个情况,我的APP有时候无法跳转,运行完Bootloader之后,就卡住了。然后重启一下,重新上电,又能够运行。 代码太复杂就没有贴。 |
|
|
|
这个在APP重新初始化时钟即可。按照这样的测试,猜测还是因为时钟停止工作后,导致程序不运行。看一下HAL_RCC_DeInit()以后,是不是所有的晶振(内部和外部的)都不工作了,这样的话芯片就不能正常工作了。
|
|
|
|
复位,或晶振问题
|
|
|
|
检查一下晶振的波形
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1085 浏览 0 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
1041 浏览 2 评论
2145 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1240 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
1660 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 21:43 , Processed in 0.891530 second(s), Total 91, Slave 73 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号