暑假电赛写过一个程序关于电压值FFT傅里叶变换,但是程序写的有点乱,每次运行时间长一点都会时不时挂掉,还要每次按复位键重启,所以想着在软件里设置一段时间自动软重启,两个函数如下
void Sys_Soft_Reset(void)// 软重启
{
SCB->AIRCR =0X05FA0000|(u32)0x04;
}
void SoftReset(void)
{ __set_FAULTMASK(1); // 关闭所有中端
NVIC_SystemReset(); // 复位
}
测试完,结果是可以的程序不会挂掉了,但是问题来了,总感觉这样的软重启有点问题,只适用于我这个程序对计数没什么大要求而且实时性的,还是不可以做大的程序,会下来再继续找一找软重启的区别。总结一下还是做问题要找到解决办法,从源头入手,多扩展知识面。
Smartkeke