打印

STM32热重启死机问题?

[复制链接]
6601|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kami03372|  楼主 | 2010-10-18 15:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
程序运行中需要运行
NVIC_SystemReset();这个函数,一旦运行就会死机
没办法单步调试,所以问下大家问题可能出在哪里?
重新上电启动就没有问题。谢谢大家了!
沙发
vigia| | 2010-10-18 15:33 | 只看该作者
什么叫死机?

所谓的单步调试,不过是调试器在下一条执行语句处加一个断点,所以能在当前语句执行完之后,停下来。但是你Resest了么,不停下来也是正常的。

使用特权

评论回复
板凳
kami03372|  楼主 | 2010-10-18 15:35 | 只看该作者
冷复位的时候,串口可以通讯,通过串口发个重启指令,执行完上面的指令以后,
就无法通讯了,之前实现的功能也崩溃了,只能重新上电

使用特权

评论回复
地板
vigia| | 2010-10-18 16:08 | 只看该作者
你在初始化串口之前,可以先调一个USART_DeInit()函数。

另外,如果不考虑调试,不接仿真器直接运行,你的代码在执行完NVIC_SystemReset()之后,能正常串口通信吗?

使用特权

评论回复
5
kami03372|  楼主 | 2010-10-18 16:21 | 只看该作者
好的,我试试,在执行完NVIC_SystemReset()之后,串口不能通信了
之前的代码是在103C6T6上跑的没问题
现在移植到103VCT6上的就出现这样了

使用特权

评论回复
6
kami03372|  楼主 | 2010-10-18 16:30 | 只看该作者
谢谢vigia了,呵呵,找到问题在哪里了,
USART_DeInit里面我是根据IO状态来设定波特率的,
结果因为IO口变动了
由A口变成C口的,读取状态的时候GPIOA->IDR这个没改,波特率一直在变
太不细心

使用特权

评论回复
7
pkat| | 2010-10-18 22:56 | 只看该作者
楼主是有点粗心了,不过这种问题多碰一些就会有经验了:lol

使用特权

评论回复
8
hubbell| | 2010-10-19 10:02 | 只看该作者
还是不明白,是怎样死机。

使用特权

评论回复
9
weibn| | 2010-10-22 14:29 | 只看该作者
是导论“热重起”还是“IO口的配置”,如果是热重起,有外部复位电路吗?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

190

帖子

0

粉丝