stm32學習筆記 NVIC

2021-10-23 01:26:18 字數 1580 閱讀 1632

這部分講的很好。

misc.**件其實就是stm32f10x_nvic.h,nvic的主要操作都在其中,還包括systick的選擇源操作。

core_cm3檔案裡面是核心外設,當然包括nvic,l裡面包含nvic的暫存器操作。

高達81個中斷,實際上是67stm外設中斷(60個settable,由庫函式interrupt number可知)+16cortex核心中斷(7個settable)。

0-15優先順序等級。

可用電壓和脈衝作為中斷訊號.。(未嘗試)

無論使能與否,每個中斷都可被掛起。

這幾個其實沒啥卵用。。之後的misc庫函式封裝得很完善了。

nvic的暫存器操作也可以在core_m3.**件中nvic function中找到,但是一般不使用。

重要的是:

iprx暫存器

cortex每個中斷分配8bit的中斷優先順序程式設計區域,乙個iprx管四個中斷。

實際上st只用了8bit裡面的4bit,還用了搶占、響應兩個優先順序。

nvic屬於cortex,無時鐘使能。

之前說過這幾個暫存器其實沒啥卵用,庫函式的操作如下:

如此簡單就完成了nvic的中斷設定。

nvicconfig.h

#include

"nvicconfig.h"

void

nvic_config

( uint8_t nvic_irqchannel , uint32_t nvic_prioritygroup ,\

uint8_t nvic_irqchannelpreemptionpriority , uint8_t nvic_irqchannelsubpriority , functionalstate nvic_irqchannelcmd )

nvicconfig.c

#ifndef __nvic_config_h_

#define __nvic_config_h_

#include

"stm32f10x.h"

void

nvic_config

( uint8_t nvic_irqchannel , uint32_t nvic_prioritygroup ,\

uint8_t nvic_irqchannelpreemptionpriority , uint8_t nvic_irqchannelsubpriority , functionalstate nvic_irqchannelcmd )

;#endif

main.c

int

main()

//配置extio 組0優先順序 搶占0 響應1 使能

歡迎交流指正~~

STM32學習筆記 五 NVIC

三 中斷程式設計 f407在核心水平上搭載了乙個異常響應系統,支援為數眾多的系統異常和中斷,其中系統異常有10個,中斷有82個。nvic是巢狀向量中斷控制器,控制著整個晶元中斷相關的功能,它跟核心緊密耦合,是核心裡面的乙個外設。在配置中斷的時候一般只用iser icer和ip這三個暫存器,iser用...

stm32之NVIC的使用

nvic nested vectored interrupt controller 巢狀向量中斷控制器 nvic主要用於對一些中斷的處理,在stm32中,中斷服務程式統一放在乙個 stm32f10x it.c檔案裡,這個檔案裡開始只放了一些系統異常的介面,如果我們要寫一些自己的普通的中斷函式,就要自...

stm32的NVIC是什麼?

nvic的全稱是nested vectoredinterrupt controller,即巢狀向量中斷控制器。對於m3和m4核心的mcu,每個中斷的優先順序都是用暫存器中的8位來設定的。8位的話就可以設定2 8 256級中斷,實際中用不了這麼多,所以晶元廠商根據自己生產的晶元做出了調整。比如st的s...