首先我們需要知道什么是中斷優先級:中斷優先級是CPU響應中斷的先后順序
中斷優先處理的原則是:
- 先響應優先級高的中斷請求,再響應優先級低的中斷請求。
- 如果一個中斷請求己被響應,同級的其他中斷請求將被禁止。
- 如果同級的多個中斷請求同時出現
中斷優先級是CPU響應中斷的先后順序。中斷優先處理的原則是:
- 先響應優先級高的中斷請求,再響應優先級低的中斷請求。
- 如果一個中斷請求己被響應,同級的其他中斷請求將被禁止。
- 如果同級的多個中斷請求同時出現,CPU則按單片機內部的自然優先級順序響應各中斷請求。
單片機內部自然優先級順序(由高到低)為:
外部中斷0→定時器0中斷→外部中斷l→定時器1中斷→串行接口中斷
中斷優先級的配置:
首先,對STM32中斷進行分組,組0-4.同時,對每個中斷設置一個搶占優先級和一個響應優先級
![poYBAGKEmM2AAkp_AABlzIctiLU297.png](https://file.elecfans.com/web2/M00/44/52/poYBAGKEmM2AAkp_AABlzIctiLU297.png)
搶占優先級和響應優先級的區別
高優先級的搶占優先級是可以打斷正在進行的低搶占優先級中斷的。
搶占優先級相同的中斷,高響應優先級不可以打斷低響應優先級的中斷。
搶占優先級相同的中斷,當兩個中斷同時發生的情況下,哪個響應優先級高,哪個先執行。
如果兩個中斷的搶占優先級和響應優先級都是一樣的話,則看哪個中斷先發生就先執行。
使用講解 :
實際在使用中我們可以根據實際情況設置相應的優先級分組。
特別注意:一個程序代碼里只能有一個中斷優先級分組,存在多個 優先級分組可能會導致程序出現奇奇怪怪的錯誤!
![poYBAGKEm8GALyznAAGvpmciYEA297.png](https://file.elecfans.com/web2/M00/44/54/poYBAGKEm8GALyznAAGvpmciYEA297.png)
-
單片機
+關注
關注
6044文章
44627瀏覽量
638969 -
cpu
+關注
關注
68文章
10911瀏覽量
213144 -
中斷優先級
+關注
關注
0文章
22瀏覽量
9414
發布評論請先 登錄
相關推薦
freertos中斷優先級在哪設置
請問有什么方法降低WIFI中斷的優先級?
為什么不能在不同的優先級中安裝相同的處理程序?
如何在不同優先級安裝相同的處理程序?
systick的中斷優先級是否應該設置為最高優先級的嵌套中斷?
創建了兩個task如果一個優先級高 一個優先級低,高優先級的那個一直在做,什么時候會調度到低優先級的呢?
STM8中斷優先級不夠怎么解決?
求助,關于stm32F4中斷優先級0無法搶占的問題求解
嵌入式實時操作系統優先級搶占式調度機制解析
![嵌入式實時操作系統<b class='flag-5'>優先級</b><b class='flag-5'>搶占</b>式調度機制解析](https://file1.elecfans.com/web2/M00/C7/58/wKgaomYJEMKAKHYXAAAdAnktHlM187.png)
評論