×
单片机 > 单片机程序设计 > 详情

STM32的V3.5库Systick优先级设置的问题

发布时间:2020-08-27 发布时间:
|
以前的旧版本的库通过如下函数来设置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(中)
关键字:STM32  V3.5库  Systick  优先级设置 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
51单片机CO2检测显示程序解析