a707083746 发表于 2018-12-1 09:44:13

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

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

发表于 2018-12-1 09:56:11

可以重启。请确定一下是否进行了复位操作。

a707083746 发表于 2018-12-1 10:31:20

安 发表于 2018-12-1 09:56
可以重启。请确定一下是否进行了复位操作。

同样的程序在另一块板子上试了几十次都没问题。。。

党国特派员 发表于 2018-12-1 10:33:19

当然可以了。

a707083746 发表于 2018-12-1 10:40:29

党国特派员 发表于 2018-12-1 10:33
当然可以了。

嗯 可以。现在怀疑硬件哪里有问题了,因为同样的程序在别的板子上没出现问题:lol

stm1024 发表于 2018-12-1 11:33:36

重启相当于是优先级最高的中断,应该是没问题的

一代睡神的崛起 发表于 2018-12-1 13:13:50

中断服务函数里面放入重启的子函数就可以了,如果不行说明你硬件设计有问题

a707083746 发表于 2018-12-1 14:58:33

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

:handshake

a707083746 发表于 2018-12-1 14:59:49

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

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

chifen 发表于 2018-12-1 21:20:22

可以把 Stack_Size      EQU   0x00000600 这样的值改大点试试

页: [1] 2
查看完整版本: STM32F103C8串口中断里可以重启芯片吗?