程序中Disable_irq ,以及Enable_irq的位置以及用法

这里是总结的项目文件中的程序的结构

主函数中第一部分上电初始化模块
这一部分有2个部分组成

Bor_init();

Lvdt_init();

第二部分就是对复位滤波器使能
reset_filter();

这里主要是配置两个寄存器
外部复位端口使能
外部复位端口滤波使能

rst_flag_clr(rst_flag_get());
清除复位标志位

以上是最基本的初始化项目

第三部分就是外设的初始化
接下来要使得芯片正常工作是需要初始化各项外设的
这时就必须要关闭所有的中断请求了
Disable_Irq();

WDT,TIMER,RTC初始化
。。。

Enable_Irq();
如果没有初始化各个中断又没有关闭中断 那么刚上电万一引起中断单片机有可能会执行不下去 引起时序混乱

并不是一定 只是先关了比较保险 保证了稳定性

关于单片机上电各个寄存器的值 手册中有 可能一定 可能不一定

编程一定要保证程序的稳定性 尽量避免不确定因素

还有一点是在程序进入主循环以后,CAN的接收初始化的时候需要在这之前关闭所有中断


版权声明:本文为qq_45763093原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。