新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > STM32的V3.5庫Systick優先級設置的問題

        STM32的V3.5庫Systick優先級設置的問題

        作者: 時間:2016-11-20 來源:網絡 收藏
        以前的舊版本的庫通過如下函數來設置Systick的優先級。但新的V3.5的庫不含該函數,查詢良久才得到答案,發現網上那個不少是錯誤的,誤人子弟。
        NVIC_SystemHandlerPriorityConfig(SystemHandler_SysTick, 0, 0);
        查詢結果總結如下:
        1. STM32中斷優先級是使用4-bit來表示的,即總共有16個級別。
        2. 優先級分為2個部分:搶先優先級和子優先級,上述的4個bit可以靈活分配給搶先優先級和子優先級,比如,1個bit表示搶先優先級,則剩余3個bit表示子優先級。固件庫中對應的函數是:NVIC_PriorityGroupConfig()。
        3. 中斷分為內核中斷和芯片(STM32)中斷,配置的寄存器位置是不同的,芯片中斷的配置使用NVIC,內核中斷(比如systick)的配置使用SCB。
        4. 內核中斷優先級設置使用函數:NVIC_SetPriority(),此函數需要一個表示優先級的參數,可以利用NVIC_EncodePriority()這個函數生成,比如:
        NVIC_SetPriority(SysTick_IRQn,
        NVIC_EncodePriority(NVIC_GetPriorityGrouping(), 0, 1));
        //搶先優先級:0(最高);子優先級:1(中)


        評論


        技術專區

        關閉
        主站蜘蛛池模板: 贵港市| 玉环县| 库车县| 北辰区| 吉木萨尔县| 潼南县| 海伦市| 井冈山市| 浮山县| 曲阜市| 广州市| 眉山市| 忻城县| 安陆市| 黄浦区| 金坛市| 山东| 特克斯县| 麻栗坡县| 普宁市| 天长市| 阿拉尔市| 云安县| 任丘市| 宾阳县| 大洼县| 浠水县| 渭源县| 南阳市| 三穗县| 农安县| 蒙阴县| 海南省| 阿合奇县| 调兵山市| 黄山市| 桐乡市| 汶上县| 博兴县| 诸城市| 胶南市|