1.在固件库函数里面,用来读取中断状态寄存器的值判断中断类型的函数是:
ITStatus TIM_GetITStatus(TIM_TypeDef* TIMx, uint16_t)
作用:判断定时器TIMx的中断类型TIM_IT是否发生中断。
比如,我们要判断定时器3是否发生更新(溢出)中断,方法为:
if(TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET)
{
}
2.固件库中清除中断标志位的函数是:
void TIM_ClearITPendingBit(TIM_TypeDef* TIMx, uint16_t TIM_IT)
作用:清除定时器TIMx的中断TIM_IT标志位。
比如我们在TIM3的溢出中断发生后,我们要清除中断标志位,方法是:
TIM_ClearITPendingBit(TIM3,TIM_IT_Update);
注意:固件库还提供了两个函数用来判断定时器状态以及清除定时器状态标志位的函数TIM_GetFlagStatus和TIM_ClearFlag,他们的作用和前面两个函数的作用类似。只是在TIM_GetITStatus函数中会先判断这种中断是否使能,使能了才去判断中断标志位,而TIM_GetFlagStatus直接用来判断状态标志位。
关键字:STM32 timers 中断处理函数
引用地址:
STM32中的timers中断处理函数
推荐阅读最新更新时间:2024-03-16 16:13
STM32定时器输出比较模式中的疑惑
OCx与OCxREF和CCxP之间的关系 初学STM32,我这个地方卡了很久,现在终于有些明白了,现在把我的理解写下与大家共享,如果有不对的地方,还请指出。 OCxREF就是一个参考信号,并且约定: OCxREF=1,称OCxREF有效。反之,OCxREF=0,称OCxREF无效; ‘1’电平(高电平)称为OCxREF的有效电平,‘0’ 电平(低电平)称为OCxREF的无效电平。 ——依据参考手册:The output stage generates an intermediate waveform which is then used for reference:OCxRef (active high). The polari
[单片机]
STM32数模转换器的说明
使用STM32 micros的 模拟数字转换器(ADC) 后,接下来要处理的明显内部硬件模块是 数字到模拟转换器(DAC) 。顾名思义,该模块仅具有ADC的补充功能。它将数字二进制值转换为模拟电压输出。 DAC模块具有多种用途,包括音频生成,波形生成等。通常在大多数8位微控制器中,该模块不可用,并且 脉冲宽度调制(PWM)可以稍微满足其需求。 》 块。部分原因是由于它们的硬件资源和运行速度相对较低。所有STM32单片机都具有PWM模块,但大容量STM32也具有DAC模块。 STM32 DAC模块不是很复杂,并且在工作原理方面与ADC模块相似。下面的简化框图显示了STM32 DAC模块的主要组件。 再次请注意低密度STM32微处
[单片机]
STM32之ADC配置
对于STM32,在使用ADC的时候需要配置几个参数。 (1) 第一个参数是ADC_Mode,这里设置为独立模式: ADC_InitStructure.ADC_Mode = ADC_Mode_Independent; 在这个模式下,双ADC不能同步,每个ADC接口独立工作。所以如果不需要ADC同步或者只是用了一个ADC的时候,就应该设成独立模式了。 (2) 第二个参数是ADC_ScanConvMode,这里设置为DISABLE。 ADC_InitStructure.ADC_ScanConvMode = DISABLE; 如果只是用了一个通道的话,DISABLE就可以了,如果使用了多个通道的话,则必须将其设置为ENAB
[单片机]
解读关于STM32问题集之BOOT0和BOOT1的作用
一、功能及目的 在每个STM32的芯片上都有两个管脚BOOT0和BOOT1,这两个管脚在芯片复位时的电平状态决定了芯片复位后从哪个区域开始执行程序。 BOOT1=x BOOT0=0 // 从用户闪存启动,这是正常的工作模式。 BOOT1=0 BOOT0=1 // 从系统存储器启动,这种模式启动的程序功能由厂家设置。 BOOT1=1 BOOT0=1 // 从内置SRAM启动,这种模式可以用于调试。 二、使用方法 一般BOOT0和BOOT1跳线都跳到0(地)。只是在ISP下载的情况下,BOOT0=1,BOOT1=0,下载完成后,把BOOT0的跳线接回0,也即BOOT0=0,BOOT1=0。 三、注意说明 一般不使用内置SR
[单片机]
STM32的bootloader IAP编程
不需要拆机就能对产品进行固件升级是很多人想要的效果,不仅方便而且节省精力和成本。那么如何完成这项工作呢?接下来所介绍的Bootloader就可以完成这项工作,通过Bootloader引导程序完成固件的升级。下面来浅析STM32 Bootloader设计。 首先谈谈stm32的ISP和IAP区别和联系。 ISP(In-System Programming)在系统可编程,指电路板上的空白器件可以编程写入最终用户代码, 而不需要从电路板上取下器件,已经编程的器件也可以用ISP方式擦除或再编程。IAP(In-Application Programming) 指MCU可以在系统中获取新代码并对自己重新编程,即可用程序来改变程序。ISP和IA
[单片机]
关于STM32的BOOT0和BOOT1
STM32一共有三种启动模式,在ST官网上下载的RM0008中,可找到启动相关的配置说明: 翻译为中文: STM32三种启动模式对应的存储介质均是芯片内置的,它们是: 1)用户闪存 = 芯片内置的Flash。 2)SRAM = 芯片内置的RAM区,就是内存啦。 3)系统存储器 = 芯片内部一块特定的区域,芯片出厂时在这个区域预置了一段Bootloader,就是通常说的ISP程序。这个区 域的内容在芯片出厂后没有人能够修改或擦除,即它是一个ROM区。 在每个STM32的芯片上都有两个管脚BOOT0和BOOT1,这两个管脚在芯片复位时的电平状态决定了芯片复位后从哪个区域开始执 行程序,见下表: BOOT1=x BOOT
[单片机]