国产精品久久久久影院,成人午夜福利视频,国产精品久久久久高潮,国产精品 欧美 亚洲 制服,国产精品白浆无码流出

歷史上的今天

今天是:2025年07月16日(星期三)

2018年07月16日 | STM32中斷設(shè)置相關(guān)寄存器的分析

發(fā)布者:mancozc 來源: eefocus關(guān)鍵字:STM32  中斷設(shè)置  寄存器 手機(jī)看文章 掃描二維碼
隨時(shí)隨地手機(jī)看文章


1.中斷設(shè)置使能和清除寄存器器的分析


地址 名稱 描述

0xE000 E100 SETENA 設(shè)置使能中斷0到31,寫1將位置1,寫0無作用

0xE000 E180 CLRENA 寫1將位置0,禁能中斷,寫0無作用

__ASM void SET_CLEAR_IRQ(void)

            {

                    LDR         R0, =0xE000E100

                    MOVS        R1, #0x4

                    STR         R1, [R0]


                    LDR         R0, =0xE000E180

                    MOVS    R1, #0x4

                    STR         R1, [R0]

        }


初始狀態(tài)是這樣的` 

這里寫圖片描述


這里第一個(gè)STR R1,[R0]是設(shè)置使能外部中斷2的。執(zhí)行后: 

這里寫圖片描述


第二個(gè)STR R1,[R0]是設(shè)置除能外部中斷2的。執(zhí)行后: 

這里寫圖片描述


可以看到SETENA,CLRENA寄存器所對應(yīng)的地址的內(nèi)容是相同的,都是中斷寄存器的內(nèi)容,表示哪個(gè)中斷是開啟的。 

只是寫1后有不同的行為,SETENA寫1,置位對應(yīng)的位,CLRENA寫1,清除對應(yīng)的位。


使用兩個(gè)寄存器,一個(gè)用來設(shè)置,一個(gè)用來清除,這樣的操作的優(yōu)勢在于使能或者除能中斷只需要一個(gè)寫操作就可以完成。


如果使用一個(gè)簡單的讀/寫寄存器來完成操作,則使能或者除能中斷需要讀-修改-寫的過程。 

如果在讀寫過程中,發(fā)生了中斷,而中斷中改變了該寄存器的值,那么中斷返回后,繼續(xù)寫操作,那么ISR對寄存器的修改有可能會被覆蓋。


使用C語言:


*((volatile unsigned long *)(0xE000E100))=0x04;//使能中斷2

*((volatile unsigned long *)(0xE000E180))=0x04;//除能中斷2


CMSIS提供了以下函數(shù)來使能或者除能中斷:


void NVIC_EnableIRQ(IRQn_Type_IRQn);

void NVIC_DisableIRQ(IRQn_Type_IRQn);


2.中斷掛起和清除掛起


當(dāng)一個(gè)終端發(fā)生了,卻又無法立即處理(比如處理器正在處理更高優(yōu)先級的中斷),這個(gè)中斷請求就會被掛起。掛起狀態(tài)保存在一個(gè)寄存器中。如果中斷變?yōu)楫?dāng)前優(yōu)先級最高的中斷,中斷得到處理,那么硬件就會清除中斷請求,也可以手動(dòng)清除。


地址 名稱 描述

0xE000E200 SETPEND 設(shè)置中斷0到31的掛起狀態(tài),寫1將置1,寫0無作用

0xE000E280 CLRPEND 清除中斷0到31的掛起狀態(tài),寫1置位,寫0無作用

匯編代碼和C語言訪問參考上面的中斷使能,除能,將地址替換一下就行了。


CMSIS提供了以下函數(shù)來訪問中斷掛起狀態(tài)寄存器:


void NVIC_SetPendingIRQ(IRQn_Type_IRQn);//設(shè)置一個(gè)中斷的掛起狀態(tài)

void NVIC_ClearPendingIRQ(IRQn_Type_IRQn);//清除

void NVIC_GetPendingIRQ(IRQn_Type_IRQn);//返回true表示中斷掛起狀態(tài)為1


3.中斷優(yōu)先級


Cortex-M0(+)每一個(gè)外部中斷都是有一個(gè)對應(yīng)的優(yōu)先級寄存器(設(shè)置內(nèi)部異常優(yōu)先級的寄存器和這個(gè)不同),每個(gè)優(yōu)先級設(shè)置占用1個(gè)字節(jié),但是只使用最高的2個(gè)位。Cortex-M3使用的是1個(gè)字節(jié)中的高4位,分為兩組,響應(yīng)優(yōu)先級和子優(yōu)先級。Cortex-M0(+)是沒有子優(yōu)先級設(shè)置的。為什么使用高位做優(yōu)先級,主要是為了不同處理器間移植,不會導(dǎo)致中斷優(yōu)先級發(fā)生順序的顛倒。 

Cortex-M0中的NVIC寄存器只支持字傳輸,這樣每次修改寄存器都會同時(shí)涉及4個(gè)中斷優(yōu)先級寄存器。 

對于CM0,應(yīng)該避免中斷使能之后改變優(yōu)先級設(shè)定。改變的結(jié)果在ARMv6-M體系結(jié)構(gòu)上是不可預(yù)知的。而CM3支持中斷優(yōu)先級的動(dòng)態(tài)切換,且支持中斷優(yōu)先級設(shè)置寄存器的字節(jié)或者半字傳輸。


設(shè)置中斷#2的優(yōu)先級為0xC0(采用高2位,優(yōu)先級為3),使用C語言: 

(訪問可能會被隨時(shí)且不被當(dāng)前程序所知道的改變的內(nèi)容,需要使用volatile)


unsigned int temp;

temp=*((volatile unsigned int *)(0xE000E400));

temp=temp&(0xFF00FFFF)|(0xC0<<16);

*((volatile unsigned int*)(0xE000E400))=temp;


CMSIS中的設(shè)置函數(shù):


void NVIC_SetPriority(IRQn_Type_IRQn,uint32_t priority);//設(shè)置中斷或異常的優(yōu)先級

void NVIC_GetPriority(IRQn_Type_IRQn);//返回中斷或異常的優(yōu)先級


4.異常屏蔽寄存器(PRIMASK)


在對時(shí)間敏感的應(yīng)用,需要在一段較短的時(shí)間內(nèi)禁止所有中斷。CM0通過一個(gè)PRIMASK寄存器來屏蔽除了NMI和硬件錯(cuò)誤異常的其他所有中斷和系統(tǒng)異常。 

PRIMASK只有一位可用。當(dāng)為1時(shí),禁止中斷和異常,為0時(shí)使能。 

設(shè)置方法:


    MOVS  R0 , #1

    MSR     PRIMASK, R0


或者


CPSIE i;//清除PRIMASK

CPSID i;//設(shè)置PRIMASK


CMSIS中


void _enable_irq(void);

void _disable_irq(void);


這兩個(gè)函數(shù)會被編譯為CPS指令。 

注意時(shí)間敏感的程序完成后,需要清除PRIMASK。中斷返回并不會清除PRIMASK。


關(guān)鍵字:STM32  中斷設(shè)置  寄存器 引用地址:STM32中斷設(shè)置相關(guān)寄存器的分析

上一篇:ARM 中斷--IRQ and FIQ配置--外部配置
下一篇:最后一頁

推薦閱讀

這兩天帶博主的工程師給了一個(gè)小任務(wù)給我,使用7個(gè)小器件進(jìn)行半雙工的工業(yè)485總線通信,使用公司內(nèi)部標(biāo)準(zhǔn)幀格式,采用主動(dòng)上傳方式每隔一定的定量時(shí)間進(jìn)行數(shù)據(jù)上傳。當(dāng)然,實(shí)現(xiàn)一個(gè)器件的數(shù)據(jù)上傳是十分簡單的,但是使用大于兩個(gè)器件進(jìn)行485工業(yè)數(shù)據(jù)傳輸?shù)臅r(shí)候就必須要考慮數(shù)據(jù)碰撞的問題了,因?yàn)橛捎?85半雙工的特性,同一時(shí)間數(shù)據(jù)只能上傳或者下載,但是...
8月14日-16日,第八屆中國電子信息博覽會(CITE2020)將在深圳會展中心舉行,本屆展會聚焦杰出產(chǎn)品與技術(shù)的融合創(chuàng)新價(jià)值傳遞,積極推動(dòng)并加速電子全行業(yè)發(fā)展升級,展品涵蓋電子信息產(chǎn)業(yè)上下游全產(chǎn)業(yè)鏈。 東華軟件(展位號: 1A030)作為一家技術(shù)型公司一直關(guān)注和參與此項(xiàng)盛會。今年,CITE2020博覽會上將主要展示東華智慧城市,其余包括東華智慧文旅、智慧鄉(xiāng)...
現(xiàn)在隨著電力工業(yè)的飛速發(fā)展,用戶對電力產(chǎn)品的質(zhì)量要求也在不斷提高,為了改善電能質(zhì)量和提高系統(tǒng)穩(wěn)定性、安全性及根據(jù)工業(yè)生產(chǎn)的實(shí)際需要,變壓器變比日益顯得重要.變壓比是變壓器的重要參數(shù)之一,變壓比的變化與變壓器繞組的變化有密切的關(guān)系.變壓器變壓比的測量即變壓器電壓比的測量,是為了檢查變壓器的每一繞組的匝數(shù)是否符合設(shè)計(jì)與運(yùn)行要求,因此也叫匝數(shù)...

史海拾趣

問答坊 | AI 解惑

泰可模塊(1)

系列功率模塊資料…

查看全部問答∨

請教關(guān)于ad采集的干擾問題,謝謝

使用ad7327進(jìn)行模擬信號采集(模擬信號輸出為直流電壓信號),八通道的,進(jìn)行單路采集時(shí),關(guān)閉其他不用通道,一切正常,當(dāng)八通道全部打開,輪流采集時(shí),1,3,5,7通道采集數(shù)據(jù)正常,0,2,4,6,通道干擾較大,采集的數(shù)據(jù)有跳變而且跳變幅度大,好 ...…

查看全部問答∨

LED前景

剛才看到論壇里有關(guān)LED的前景話題,我也來說兩句。 LED的前景包括技術(shù)前景和應(yīng)用前景。 從技術(shù)上講,色溫范圍、照度標(biāo)準(zhǔn)、亮度范圍、照明總均勻度和眩光控制是未來要解決的五大問題。LED的研究,臺灣和日本走在世界的前列。 從應(yīng)用上講: 1: 作 ...…

查看全部問答∨

周工:哪怕再簡單也要注重思路!

人們時(shí)常看到戶外動(dòng)畫廣告,一會兒從左到右地顯示,一會兒又從右到左地顯示,這就是流水燈效果,其特征是將想要顯示的畫面切割成N份,且每次只讓其中的一個(gè)畫面顯示,同時(shí)讓肉眼能夠看得清楚。 假設(shè)先讓其中的一幅畫面顯示,接著“立刻”點(diǎn)亮與其 ...…

查看全部問答∨

選擇視頻會議系統(tǒng)的兩大誤區(qū)

近幾年來,隨著國內(nèi)外大型網(wǎng)絡(luò)運(yùn)營商對網(wǎng)絡(luò)環(huán)境的建設(shè)和改造,以及ISDN、DDN、VPN、ATM等技術(shù)的應(yīng)用和推廣,視頻會議系統(tǒng)的使用環(huán)境也變得越來越好。因此無論是通訊行業(yè)還是IT行業(yè),都對視頻會議領(lǐng)域重新進(jìn)行關(guān)注,視音頻編解碼技術(shù)趨于成熟,視頻 ...…

查看全部問答∨

wince 藍(lán)牙發(fā)送文件的問題

{                 WSACleanup();                 return FALSE;         …

查看全部問答∨

高手請入

我剛建了QQ技術(shù)交流群 專門 為大家提供一個(gè)交流的平臺 歡迎大家加入 群號36243065…

查看全部問答∨

SDIO接口的WIFI模塊是不是直接插到SD卡槽上就能用了???

SDIO接口的WIFI模塊是不是直接插到SD卡槽上就能用了???      急,萬分感謝. 另外,哪里有USB轉(zhuǎn)SDIO的芯片??給介紹一下?…

查看全部問答∨

求一發(fā)包工具,可以發(fā)送大于長度為1518的數(shù)據(jù)包

目前常規(guī)的發(fā)包工具如sniffer發(fā)送最長的包長度為1518(包含CRC),但加入vlan后數(shù)據(jù)包長度變長了,現(xiàn)需對加入vlan的數(shù)據(jù)包進(jìn)行測試,有沒有哪個(gè)發(fā)包工具可以發(fā)送大于長度為1518的數(shù)據(jù)包???…

查看全部問答∨

msp430g2231 驅(qū)動(dòng)紅外線HS0038 的程序誰有

我看到51單片機(jī) keilc的程序是這樣的 自己不會改void IR_IN() interrupt 2 using 0{  unsigned char j,k,N=0;     EX1 = 0;   //EX1 = 0為外部中斷允許 delay(15); if (IRIN==1)      { EX1 =1; & ...…

查看全部問答∨
小廣播
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號

 
EEWorld服務(wù)號

 
汽車開發(fā)圈

 
機(jī)器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號 京ICP備10001474號-1 電信業(yè)務(wù)審批[2006]字第258號函 京公網(wǎng)安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved