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

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

查看全部评分

12下一页

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版