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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3485|回復: 0
打印 上一主題 下一主題
收起左側

STM32開關總中斷

[復制鏈接]
跳轉到指定樓層
樓主
ID:75263 發表于 2015-6-9 02:58 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
在 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的,需要使用補充的方法)
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩国产在线观看 | 亚洲欧美精品在线 | 成人做爰www看视频软件 | 91精品国 | 欧美福利影院 | 一级免费片 | 可以免费看的av | 一区二区在线免费观看 | 精品一区二区三区av | 国产精品久久一区 | 日韩一区二区三区在线 | 日韩欧美一区二区三区 | 日本xxxx69 | 欧美日韩免费看 | a级黄毛片 | 自拍偷拍中文字幕 | 美日韩丰满少妇在线观看 | 亚洲成人免费视频 | 亚洲三级在线观看 | 青青青视频在线 | 国产成人+综合亚洲+天堂 | 亚洲精品无 | 99只有精品 | 成人短视频在线观看 | 黄色成人av | 9.1成人看片免费版 国产草草影院 | 69人人 | 三级视频在线观看 | 丁香在线视频 | www.一级片 | 91女人18毛片水多国产 | 亚洲成在线 | 免费看91| 亚洲一区在线播放 | 欧美成人猛片aaaaaaa | 久久视频这里只有精品 | 国产精品看片 | 在线播放中文字幕 | 青青草国产在线视频 | 亚洲永久免费视频 | 欧美日本国产 |