单片机软硬件复位
复位:把电路恢复到起始状态
复位电路启动的手段:
一是在给电路通电时马上进行复位操作;
二是在必要时可以由手动操作;
三是根据程序或者电路运行的需要自动地进行。
单片机软复位有什么好的方法?
1.放狗;
(watchingtimer看门狗防止程序发生死循环,或者说程序跑飞)
但不是所有的单片机都有看门狗的功能
2.((void(code *)(void))0x0000)();
不是严格意义上的复位,而是将程序转到0地址去执行,但有些单片机用户程序启动地址不是0地址,需要特地查询
void soft_reset(void)
{
((void (code *) (void)) 0x0000) ();
}
在需要软件复位的地方使用语句:
soft_reset();
3.用单片机一个引脚控制点一下RSTRST;
用软件实现的应付为,增加单片机外部电路复杂性,不推荐
4.用单片机一个引脚控制重新加电;
同上
5.用单片机自带的软件复位指令或内狗指令;
6.goto大法;
当程序从上电复位开始执行,且只有一个循环,可以使用goto,但尽量不要用goto命令,可能会乱窜。