一、簡介
cm3核心支援256個中斷,16個核心中斷,240個外部中斷,並且擁有256級的可程式設計中斷設定。
但是stm32只用到了cm3核心的一部分,stm32有84個中斷,包括16個核心中斷和68個可遮蔽中斷,具有16級可程式設計中斷優先順序。
stm32f103系列只有60個可遮蔽中斷。
二、中斷管理
1.對stm32進行中斷分組,組0-4,同時對每個中斷設定乙個搶占優先順序和乙個響應優先順序。組分配好後搶占位和響應位就已經確定。
組bit[7-4](共4位)
分配結果
0:40位搶占優先順序,4位響應優先順序
1:31位搶占優先順序,3位響應優先順序
2:22位搶占優先順序,2位響應優先順序
3:13位搶占優先順序,1位響應優先順序
4:04位搶占優先順序,0位響應優先順序
2.搶占優先順序和響應優先順序的區別
(1)高優先順序的搶占優先順序可以打斷低搶占優先順序的中斷。
(2)搶占優先順序相同的中斷,高響應優先順序不能打斷低響應優先順序。
(3)搶占優先順序相同的中斷,當中斷同時發生時,響應級高的先執行。
(4)搶占和響應優先順序都一樣則哪個中斷先發生,則執行哪個。
注意:一般優先順序分組只設定一次,否則會出現中斷管理混亂。
3.優先順序配置
nvic_prioritygroupconfig(nvic_prioritygroup_2);//只設定一次
//在引腳配置中設定
nvic_inittypedef nvic_initstructure;
nvic_initstructure.nvic_irqchannel = usart1_irqn; //串列埠1
nvic_initstructure.nvic_irqchannelpreemptionpriority=3 ;//搶占優先順序
nvic_initstructure.nvic_irqchannelsubpriority = 3; //響應優先順序
nvic_initstructure.nvic_irqchannelcmd = enable; //使能通道
nvic_init(&nvic_initstructure); //初始化
4.中斷優先順序的掛起解掛,檢視當前啟用狀態
nvic_getpendingirq(irqn_type irqn)
nvic_setpendingirq(irqn_type irqn)
nvic_clearpendingirq(irqn_type irqn)
STM32F103系列驅動舵機
舵機的控制一般需要乙個20ms左右的時基脈衝,該脈衝的高電平部分一般為0.5ms 2.5ms範圍內的角度控制脈衝部分。以180度角度伺服為例,那麼對應的控制關係是這樣的 0.5ms 0度 1.0ms 45度 1.5ms 90度 2.0ms 135度 2.5ms 180度 由公式 定時器溢位時間 s ...
stm32f103外部中斷
void extix init void 外部中斷0服務程式 void exti9 5 irqhandler void 這是簡單的外部中斷的配置,pc7作為中斷輸入 上面補充io口的初始化 gpio initstructure.gpio mode gpio mode ipu pc6配置為快充指示 1...
STM32F103啟動檔案
目錄 一 概述 二 彙編指令 2.1 equ 2.2 area 2.3 space 2.4 preserve8 2.5 thumb 2.6 export 2.7 dcd 2.8 proc 2.9 ldr 2.10 blx 2.11 bx 2.12 temport 2.13 b 2.14 if,els...