久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: STM32開關總中斷 [打印本頁]

作者: niuniu    時間: 2015-6-9 02:58
標題: STM32開關總中斷
在 STM32/Cortex-M3 中是通過改變 CPU的當前優先級來允許或禁止中斷。   
PRIMASK 位:只允許 NMI 和 hard  fault異常,其他中斷/  異常都被屏蔽(當前 CPU優先級=0)。  
FAULTMASK 位:只允許 NMI,其他所有中斷/異常都被屏蔽(當前 CPU 優先級=-1)。  

在 STM32 固件庫中(stm32f10x_nvic.c 和 stm32f10x_nvic.h) 定義了四個函數操作 PRIMASK位和

FAULTMASK 位,改變 CPU 的當前優先級,從而達到控制所有中斷的目的。  

下面兩個函數等效于關閉總中斷:  
void NVIC_SETPRIMASK(void);  
void NVIC_SETFAULTMASK(void);
   

下面兩個函數等效于開放總中斷:  
void NVIC_RESETPRIMASK(void);  
void NVIC_RESETFAULTMASK(void);
   

上面兩組函數要成對使用,不能交叉使用。  

例如:  

第一種方法:  
NVIC_SETPRIMASK();      //關閉總中斷  
NVIC_RESETPRIMASK();     //開放總中斷   

第二種方法:  
NVIC_SETFAULTMASK();    //關閉總中斷  
NVIC_RESETFAULTMASK();   //開放總中斷   

常常使用  

NVIC_SETPRIMASK();                // DisableInterrupts  
NVIC_RESETPRIMASK();               // EnableInterrupts

-------------------------------------------------------------------------------------------------
在 3.0 的庫中   已經沒有  
第一種方法:  
NVIC_SETPRIMASK();    //關閉總中斷  
NVIC_RESETPRIMASK();   //開放總中斷   

第二種方法:  
NVIC_SETFAULTMASK();    //關閉總中斷  
NVIC_RESETFAULTMASK();   //開放總中斷   

補充  可以用  
#define CLI()    __set_PRIMASK(1)  
#define SEI()    __set_PRIMASK(0)  

來實現 (野火的例程用的庫版本是3.0的,需要使用補充的方法)





歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 欧美美乳 | 久久伊人免费视频 | 人人看人人搞 | 在线视频一区二区三区 | 亚洲人成人一区二区在线观看 | 亚洲精品视频免费 | 欧美jizzhd精品欧美巨大免费 | 无毛av| 日韩av在线不卡 | 欧美福利在线 | 成人一区二区三区 | 日韩欧美精品在线播放 | 亚洲风情在线观看 | 欧美人妇做爰xxxⅹ性高电影 | 成人免费av | 欧美日韩成人在线 | 久久日韩粉嫩一区二区三区 | 国产精品久久一区二区三区 | 色视频www在线播放国产人成 | 亚洲人久久| 成人在线观看欧美 | 一级欧美 | 中文字幕在线观看一区 | 中文字幕人成乱码在线观看 | 久久久999免费视频 999久久久久久久久6666 | 超碰97免费在线 | 日韩精品一区二区三区第95 | 五月天综合网 | 国产精品黄视频 | 国产福利网站 | 亚洲最大的黄色网址 | 国产亚韩 | 日韩激情一区 | 国产成人精品一区 | 日韩日韩日韩日韩日韩日韩日韩 | 美女黄色在线观看 | 婷婷久久综合 | aaaa一级毛片| 午夜男人天堂 | 久久精品久久精品 | 国产精品免费在线 |