你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F103C8串口中断里可以重启芯片吗?

[复制链接]
a707083746 提问时间:2018-12-1 09:44 /
现在我利用USART2接收一组数据然后执行重启命令:
   __set_FAULTMASK(1);
   NVIC_SystemReset();
但是重启后,如果再收到串口数据时就进入硬中断 HardFault_Handler。
而如果不在中断中执行重启命令,就不会产生错误。
所以想问,在执行重启命令时需要满足什么条件,在中断里可不可以重启?

评分

参与人数 1 ST金币 +20 收起 理由
STMCU + 20

查看全部评分

收藏 评论14 发布时间:2018-12-1 09:44

举报

14个回答
废鱼 回答时间:2018-12-1 09:56:11
可以重启。请确定一下是否进行了复位操作。

评分

参与人数 1ST金币 +3 蝴蝶豆 +2 收起 理由
STMCU + 3 + 2

查看全部评分

a707083746 回答时间:2018-12-1 10:31:20
安 发表于 2018-12-1 09:56
可以重启。请确定一下是否进行了复位操作。

同样的程序在另一块板子上试了几十次都没问题。。。
党国特派员 回答时间:2018-12-1 10:33:19
当然可以了。 9.png 8.png 7.png 6.png 5.png 4.png 3.png 2.png 1.png 0.png
a707083746 回答时间:2018-12-1 10:40:29

嗯 可以。现在怀疑硬件哪里有问题了,因为同样的程序在别的板子上没出现问题
STM1024 回答时间:2018-12-1 11:33:36
重启相当于是优先级最高的中断,应该是没问题的

评分

参与人数 1ST金币 +4 蝴蝶豆 +2 收起 理由
STMCU + 4 + 2

查看全部评分

一代睡神的崛起 回答时间:2018-12-1 13:13:50
中断服务函数里面放入重启的子函数就可以了,如果不行说明你硬件设计有问题

评分

参与人数 1ST金币 +3 蝴蝶豆 +2 收起 理由
STMCU + 3 + 2

查看全部评分

a707083746 回答时间:2018-12-1 14:58:33
stm1024 发表于 2018-12-1 11:33
重启相当于是优先级最高的中断,应该是没问题的

a707083746 回答时间:2018-12-1 14:59:49
一代睡神的崛起 发表于 2018-12-1 13:13
中断服务函数里面放入重启的子函数就可以了,如果不行说明你硬件设计有问题 ...

几十块板子有一块不行,头大。。。

点评

那就是硬件上出问题了,概率性问题  发表于 2018-12-1 15:48
chifen 回答时间:2018-12-1 21:20:22
可以把 Stack_Size      EQU     0x00000600 这样的值改大点试试
101707hq1hnzl8bqhchbxq_02.jpg

评分

参与人数 1ST金币 +4 蝴蝶豆 +2 收起 理由
STMCU + 4 + 2

查看全部评分

五哥1 回答时间:2018-12-2 05:28:08
把这款板子硬件所有地方和正常的板子做个对比吧

评分

参与人数 1ST金币 +3 蝴蝶豆 +2 收起 理由
STMCU + 3 + 2

查看全部评分

a707083746 回答时间:2018-12-3 08:16:15
chifen 发表于 2018-12-1 21:20
可以把 Stack_Size      EQU     0x00000600 这样的值改大点试试

试了一下,不灵~~
a707083746 回答时间:2018-12-3 08:34:17
五哥1 发表于 2018-12-2 05:28
把这款板子硬件所有地方和正常的板子做个对比吧

板子是一块贴片的,把这块不正常的板子的芯片换了就好了。
五哥1 回答时间:2018-12-4 18:29:32
最大的可能是这块板子的芯片焊接问题,对地接触不好。个别管脚没有良好连接。
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版