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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2092|回復: 1
收起左側

STM32的NVIC理解

[復制鏈接]
ID:105323 發表于 2016-2-12 22:25 | 顯示全部樓層 |閱讀模式
STM32有43個channel的settable的中斷源;AIRC(Application Interrupt andReset Register)寄存器中有用于指定優先級的4bits。這4個bits用于分配preemption優先級和sub優先級,在STM32的固件庫中定義如下<br><br>#define NVIC_PriorityGroup_0 ((u32)0x700)<br>#define NVIC_PriorityGroup_1 ((u32)0x600)<br>#define NVIC_PriorityGroup_2 ((u32)0x500)<br>#define NVIC_PriorityGroup_3 ((u32)0x400)<br>#define NVIC_PriorityGroup_4 ((u32)0x300)<br><br>形象化的理解是:<br><br>你是上帝,<br>造了43個人,這么多人要分社會階級和社會階層了;<br>因為“階級”的詞性比較重;"階層"比較中性,<br>所以preemption優先級-&gt;階級;每個階級內部,有一些階層,sub優先級-&gt;階層;<br><br>如果按照NVIC_PriorityGroup_4這么分,就分為了16個階級(1個階層就是1個preemption優先級),0個階層;高階級的人,可以打斷低階級的正在做事的人(嵌套),最多可以完成1個中斷和15級嵌套。<br>每個階級(每個preemption優先級),你來指定這43人中,誰進入該階級;一個人叫EXTI0_IRQChannel,你指定他進入“階級8”,則<br>NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQChannel;<br>NVIC_InitStructure.NVIC_IRQChannelPreemptionPrio<wbr>rity = 8; //指定搶占式優先級別1,可取0-15<br><br>另外,在同一階級內部,一個人在做事的時候,另外一個人不能打斷他;(preemption優先級別相同的中斷源之間沒有嵌套關系)<br>還有,如果他們兩個同時想做事,因為沒有階層,那么就根據Vector table中的物理排序,讓排名靠前的人去做;<br><br>又有1個人SPI1_IRQChannel,設定如下<br>NVIC_InitStructure.NVIC_IRQChannel = SPI1_IRQChannel;<br>NVIC_InitStructure.NVIC_IRQChannelPreemptionPrio<wbr>rity = 0; //指定搶占式優先級別1,可取0-15<br><br>SPI1_IRQChannel的階級高,EXTI0_IRQChannel做事的時候可以打斷(嵌套)。<br><br><br><br>如果按照NVIC_PriorityGroup_3這么分,就分為了8個階級(1個階級是1個preemption優先級),每個階級內有2個階層(sub優先級);高階級的人,可以打斷低階級的正在做事的人(嵌套),最多可以完成1個中斷和7級嵌套。<br><br>每個階級(每個preemption優先級),你來指定這43人中,誰進入該階級;一個人叫EXTI0_IRQChannel,你指定他進入“階級3”,則:<br>NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQChannel;<br>NVIC_InitStructure.NVIC_IRQChannelPreemptionPrio<wbr>rity = 3; //指定搶占式優先級別1,可取0-7<br>還需要指定他的階層:<br>NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; //指定響應優先級別0,可取0-1<br><br>另有1個人叫EXTI9_5_IRQChannel,他的階級和階層設定如下<br>NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQChannel;<br>NVIC_InitStructure.NVIC_IRQChannelPreemptionPrio<wbr>rity = 3; //指定搶占式優先級別0,可取0-7<br>NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; //指定響應優先級別1<br><br>那么這兩個人是同一階級的兄弟,一個人在做事的時候,另外一個人不能打斷他;(preemption優先級別相同的中斷源之間沒有嵌套關系)<br>如果他們兩個同時想做事,因為前者的階層高,所以前者優先。<br><br>還有一個人叫USART1_IRQChannel,他的階級和階層設定如下<br>NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQChannel;<br>NVIC_InitStructure.NVIC_IRQChannelPreemptionPrio<wbr>rity = 2; //指定搶占式優先級別0,可取0-7<br>NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; //指定響應優先級別1<br><br>USART1_IRQChannel的優先級最高,當前面兩個人做事的時候,他都可以打斷(嵌套)。<br><br>以下的類推。
回復

使用道具 舉報

ID:74145 發表于 2016-2-15 12:26 | 顯示全部樓層
理解了
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩欧美一级片 | 国产一级黄色大片 | 欧美黑人一区二区三区 | 中文字幕在线观看一区 | 免费av在线 | av免费观看网址 | 欧美日韩激情视频 | 91成人精品一区在线播放 | 成人高清视频在线观看 | 天天操狠狠干 | 国产一级18片视频 | 红桃av在线 | 波多野结衣乳巨码无在线观看 | 激情五月婷婷 | 91久久久久久久久 | 99视频免费在线观看 | 夜夜操网站 | 一级毛片免费看 | 久久久久久久 | 成人午夜激情视频 | www.狠狠操.com| 欧美黑人一区二区三区 | 亚洲天堂一区 | 成人在线观看网站 | 一区二区不卡 | 久久久精品网 | 午夜视频免费看 | 午夜无遮挡| 亚洲视频在线一区 | www.wuye| 日本大尺度床戏揉捏胸 | 国产小视频在线 | 国产免费一区二区三区最新不卡 | 国产三级在线免费观看 | 夜夜操网站 | 亚洲成人二区 | 欧美日本在线观看 | 日韩在线中文字幕 | 欧美成人一级 | 午夜视频在线看 | 天天澡天天狠天天天做 |