STM32热重启死机问题?

[复制链接]
7599|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()之后,能正常串口通信吗?
 楼主| kami03372 发表于 2010-10-18 16:21 | 显示全部楼层
好的,我试试,在执行完NVIC_SystemReset()之后,串口不能通信了
之前的代码是在103C6T6上跑的没问题
现在移植到103VCT6上的就出现这样了
 楼主| kami03372 发表于 2010-10-18 16:30 | 显示全部楼层
谢谢vigia了,呵呵,找到问题在哪里了,
USART_DeInit里面我是根据IO状态来设定波特率的,
结果因为IO口变动了
由A口变成C口的,读取状态的时候GPIOA->IDR这个没改,波特率一直在变
太不细心
pkat 发表于 2010-10-18 22:56 | 显示全部楼层
楼主是有点粗心了,不过这种问题多碰一些就会有经验了:lol
hubbell 发表于 2010-10-19 10:02 | 显示全部楼层
还是不明白,是怎样死机。
weibn 发表于 2010-10-22 14:29 | 显示全部楼层
是导论“热重起”还是“IO口的配置”,如果是热重起,有外部复位电路吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

190

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部