本文主要是介绍论MSP430Fx2xx的POR和PUC有何区别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
**
论MSP430Fx2xx的POR和PUC有何区别
**
MSP430Fx2xx的官方手册指明单片机系统复位是由POR或者PUC两个信号产生。
如上图箭头所示:POR信号产生的同时PUC信号也会产生,而PUC信号的触发源是多样的,在PUC产生时并不一定会生成POR。
这两者的相同点是都可以触发系统复位。但两者所产生的复位效果是不同的。如下图:
POR信号会将带有上图两个红色箭头所指标识符的寄存器位重置。POR触发的系统复位是真正意义上的复位;而PUC仅能将带有“-0,-1”的寄存器位重置。
再者,POR总是由外部触发,如设备上电,Reset脚电平拉低(Reset模式下)及SVS模块在电压低于选定值时触发。而PUC可以通过软件编程,如看门狗超时,看门狗密钥出错,flash密钥出错,CPU从外设地址范围0H~01FFH取数据等都可以触发PUC。
系统复位后,程序会跳转到复位向量0xFFFEH保存的地址处运行程序。通过软件测试,除了上述PUC和POR生成系统复位的方式,也可以调用((void (*)())0XFFFE)()
控制系统复位。因为本质上,无论是PUC还是POR所产生的系统复位都会执行0XFFFE地址指向的函数,也就等同于调用((void (*)())0XFFFE)()
。
值得注意的是,由PUC产生的系统复位,并不会重置所有寄存器设置,大多数外设都被保留了复位前的配置,所以当使用软件编写PUC时,最好先重置这部分外设,否则复位后程序重新从main函数运行到配置这些外设期间,可能会出现一些料想之外的情况。
这篇关于论MSP430Fx2xx的POR和PUC有何区别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!