STM32F103C8 TIM定时器中断

简介: STM32F103C8 TIM定时器中断

前言

大部分接触STM32的学生还是以电赛为目的的,由于最近省赛时间紧迫,所以对于STM32的学习更多的在应用层,接下去的文章对于原理的介绍会减少,主要在于应用。


一、定时器类型

STM32F103C8T6外设:TMI1,TIM2,TIM3,TIM4

二、定时器具体配置

1.时间单元设置及通道初始化

这里的计数器溢出频率单位是赫兹,计数器溢出频率的倒数就是定时器触发的时间周期,一般我们计算用的是下面一个等于号的式子,这里的符号表示如下:

CK_PSC 一般为72Mhz(720 0000)

ARR 自动重装 对应变量TIM_Period 范围0~65535

PSC 分频  对应变量 TIM_Prescaler 范围0~65535

还有一些具体的操作看代码的注释,套模板即可

1. void Timer_Init(void)
2. {
3.  RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
4. 
5.  TIM_InternalClockConfig(TIM2);//选择哪个中断就写哪个
6. 
7.  TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;
8.  TIM_TimeBaseInitStructure.TIM_ClockDivision = TIM_CKD_DIV1;//修改分频,对实际情况影响不大,可以不修改
9.  TIM_TimeBaseInitStructure.TIM_CounterMode = TIM_CounterMode_Up;//向上对齐模式,同时还有向下对齐,中央对齐模式
10.   TIM_TimeBaseInitStructure.TIM_Period = 10000 - 1;
11.   TIM_TimeBaseInitStructure.TIM_Prescaler = 7200 - 1;
12.   TIM_TimeBaseInitStructure.TIM_RepetitionCounter = 0;//高级计数器需要,不需要用到的直接给0就好
13.   TIM_TimeBaseInit(TIM2, &TIM_TimeBaseInitStructure);
14. 
15.   TIM_ClearFlag(TIM2, TIM_FLAG_Update);//用于解决一复位时就先进一次中断的情况
16.   TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE);
17. 
18.   NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
19. 
20.   NVIC_InitTypeDef NVIC_InitStructure;
21.   NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;
22.   NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
23.   NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;//抢占优先级
24.   NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;//响应优先级
25.   NVIC_Init(&NVIC_InitStructure);
26. 
27.   TIM_Cmd(TIM2, ENABLE);
28. }

2.定时器中断函数

直接套模板即可

1. void TIM2_IRQHandler(void)
2. {
3.  if (TIM_GetITStatus(TIM2, TIM_IT_Update) == SET)
4.  {
5. 
6.    TIM_ClearITPendingBit(TIM2, TIM_IT_Update);//清出中断寄存器标志位,用于退出中断
7.  }
8. }


相关文章
|
4月前
|
传感器 存储
STM32--TIM定时器(3)
STM32--TIM定时器(3)
110 0
STM32--TIM定时器(3)
|
2月前
|
传感器
stm32f407探索者开发板(二十二)——通用定时器基本原理讲解
stm32f407探索者开发板(二十二)——通用定时器基本原理讲解
|
2月前
|
芯片
stm32f407探索者开发板(十二)——Systick滴答定时器-延时函数讲解
stm32f407探索者开发板(十二)——Systick滴答定时器-延时函数讲解
|
3月前
使用STM32F103标准库实现定时器控制LED点亮和关闭
通过这篇博客,我们学习了如何使用STM32F103标准库,通过定时器来控制LED的点亮和关闭。我们配置了定时器中断,并在中断处理函数中实现了LED状态的切换。这是一个基础且实用的例子,适合初学者了解STM32定时器和中断的使用。 希望这篇博客对你有所帮助。如果有任何问题或建议,欢迎在评论区留言。
218 2
|
2月前
STM32CubeMX 定时器
STM32CubeMX 定时器
60 0
|
3月前
|
芯片
【STM32】STM32简述定时器
【STM32】STM32简述定时器
|
2月前
stm32f407探索者开发板(二十三)——定时器中断实验
stm32f407探索者开发板(二十三)——定时器中断实验
|
4月前
|
传感器
STM32标准库外部中断和定时器知识点总结-2
STM32标准库外部中断和定时器知识点总结
|
4月前
|
传感器
STM32标准库外部中断和定时器知识点总结-1
STM32标准库外部中断和定时器知识点总结