历史上的今天
今天是:2024年10月12日(星期六)
2021年10月12日 | STM32之中断函数介绍篇
2021-10-12 来源:eefocus
NVIC驱动有很多的用途,如使能或者失能IRQ(中断请求),或者是使能或失能单独的IRQ通道,或者是改变其优先级。以下介绍相关函数的功能和基本用法。
1.NVIC_DeInit函数的功能是将外设NVIC寄存器重设为默认值。
2.NVIC)PriorityGroupConfig函数的功能是设置优先级分组:先占优先级和从优先级,且有一个输入参数是优先级分组的长度
例:定义先占优先级1,从优先级3.
NVIC_PriorityGroupConfig(NVICPriorityGroup_1);
3.NVIC_Init函数的功能是根据NVIC_InitStruct里面指定的参数初始化外设NVIC寄存器,其中NVIC_InitTypeDef structure定义结构体的代码如下:
typedef struct
{
u8 NVIC_IRQChannel;
u8 NVIC_IRQChannelPreemptionPriority;
u8 NVIC_IRQChannelSubPriority;
FunctionalState NVIC_IRQChannelCmd;
}NVIC_InitTypeDef;
NVIC_IRQChannel参数是用于使能或者失能指定的IRQ通道,其中IRQ通道有很多,可以自己查询相关的手册。
NVIC_IRQChannelPreemptionPriority参数设置了成员NVIC_IRQChannel中的先占优先级。
IRQChannelSubPriority参数设置了成员NVIC_IRQChannel中的从优先级。
当选定NVIC_PriorityGroup_0,参数NVIC_IRQChannelPreemptionPriority对中断通道的设置不产生影响;
当选定NVIC_PriorityGroup_4,参数IRQChannelSubPriority对中断通道的设置不产生影响。
NVIC_IRQChannelCmd参数指定了在成员NVIC_IRQChannel中定义的IRQ通道被使能或者失能,参数可取ENABLE 和 DISABLE。
例:定义优先级
NVIC_InittypeDef NVIC_InitStructure;
NVIC_PriorityGroupConfig(NVICPriorityGroup_1);//先占优先级用1 ,从优先级用3
//定义TIM3中断的优先级,先占优先级为0,从优先级为2
NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQChannel;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
NVIC_InitStructure.NVIC_IRQSubPriority = 2;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_InitStructure(&NVIC_InitStructure);
//定义USART1串口中断的优先级,先占优先级1,从优先级5.
NVIC_InitStructure.NVIC_IRQChannel = SUART1_IRQChannel;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
NVIC_InitStructure.NVIC_IRQSubPriority = 5;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_InitStructure(&NVIC_InitStructure);
//定义RTC中断优先级为1,从优先级为7;
NVIC_InitStructure.NVIC_IRQChannel = RTC_IRQChannel;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
NVIC_InitStructure.NVIC_IRQSubPriority = 7;
// NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_InitStructure(&NVIC_InitStructure);
4.NVIC_SetVectorTable函数的功能是设置向量表的位置和偏移。其中输入参数中,对于32位的OFFSET向量表基地址的偏移量对于FLASH,参数值必须高于0x08000100,对于RAM必须高于0X100.
例:对FLASH指定向量表基地址偏移量。
NVIC_SetVectorTable(NVIC_VectTab_FLASH,0x00);
史海拾趣
|
当我在对一个电路进行仿真时总是出现这些错误,但我又不知道什么意思,请各位高手指点一下。 非常感谢! C3 Error: Pin order data (PINS=1:[]) not in READ ONLY field 4. Pins sorted by pin-name. C3 Error ...… 查看全部问答> |
|
从无铅、RoHS到无卤素,再到PoHS,业界对环保材料的“门槛”越设越高,未来的绿色之路将走向何处?今年10月15-16日高交会电子展期间,品牌研讨会\"IPCWorks Asia\"将再次在深圳举办,本届会议的主题是\"无铅/无卤素制造\",届时众多业内无卤技术专 ...… 查看全部问答> |
|
SqlCE PULL正常 SubmitSql也是正常的. 但是在 PUSH时出错. 请会的指点一下. 程序如下: string _strRemoteConnect = \"provider=sqloledb;data source=192.168.1.99;Initial Catalog=zls;User ID=sa;\"; SqlCeRe ...… 查看全部问答> |
|
_delay_ms()这个延时到底有多准啊? 如果用计数器TNCT0计数,TNCT0的初始值为55,跳到255后溢出中断, 选择8分频的时钟源,F_CPU= 16M,10ms的时间TNCT0的溢出次数应该是100次 即TNCT0跳了100*(255-55)= 20000次。 问: _ ...… 查看全部问答> |
|
要求输出电流高的的开关电路,集电极输入vcc为6.5v,按键基极输入5.22v。求高手详解一下电路,q1为ss8050,q2为2SC2500,我觉得这个电路构不成开关电路,我的理由是6.5>5.22是反偏,集电极反偏,发射极正便,求高手解决小弟的问题。更加纳闷的是 ...… 查看全部问答> |
|
本帖最后由 dontium 于 2015-1-23 12:43 编辑 ECG 机的基本功能包括 ECG 波形显示(通过 LCD 显示屏或印刷纸媒质显示)、心跳律动指示以及通过按钮控制的简单用户界面。越来越多的 ECG 产品要求具备更多的功能,例如通过便携式媒体存储电子病历、 ...… 查看全部问答> |
|
芯片适用,nRF24L01无线数据传输电路,nRF24L01引脚说明及封装图。 资源连接: https://download.eeworld.com.cn/detail/lbk747/948… 查看全部问答> |




