在很多时候我们外部硬件方式不能复位或者不方便操作的情况下,软件复位的方式就变得很实用了。可以写入到串口,当串口发送特定字符就复位;也可以某个按键设置了长按就复位等等快捷的方式进行复位。
在复位发生器执行复位命令时,往往会有一个延时。在此延时期间,仍然可以响应中断请求这里就有可能触发中断,所以在复位前最好先关闭全部中断。
//软件复位函数
void System_Reset(void) {
__set_FAULTMASK(1); //关闭所有中断
NVIC_SystemReset(); //进行软件复位
}