STM32:定时器定时中断

简介: STM32:定时器定时中断

1.主函数(main.c)代码部分:


4e5650d2c3e04766a6c53aa296f755c4.png

483bcd09c0854d458782fa330ac829f2.png

#include "stm32f10x.h"                  // Device header
#include "Delay.h"
#include "OLED.h"
#include "CountSensor.h"
uint8_t Num;
int main(void)
{
    OLED_Init();    
    OLED_ShowString(1,1,"Num:");
    Timer_Init();
    while(1)
    {
        OLED_ShowNum(2,1,Num,4);
    }
}
void TIM2_IRQHandler(void)
{
    if(TIM_GetITStatus(TIM2,TIM_IT_Update)==SET)
    {
        Num++;
        TIM_ClearITPendingBit(TIM2,TIM_IT_Update);
    }
}

2.Timer.c(定时中断) 代码部分:

871c9fbc703f4750b041e27583a24444.png

c1f92d5da4df489898e5ef5d0470d400.png

#include "stm32f10x.h"                  // Device header
void Timer_Init(void)
{
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);
    TIM_InternalClockConfig(TIM2);
    TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct;
    TIM_TimeBaseInitStruct.TIM_ClockDivision=TIM_CKD_DIV1;
    TIM_TimeBaseInitStruct.TIM_CounterMode=TIM_CounterMode_Up;
    TIM_TimeBaseInitStruct.TIM_Period=10000-1;
    TIM_TimeBaseInitStruct.TIM_Prescaler=7200-1;
    TIM_TimeBaseInitStruct.TIM_RepetitionCounter=0;
    TIM_TimeBaseInit(TIM2,&TIM_TimeBaseInitStruct);
    TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE);
    NVIC_InitTypeDef NVIC_InitStruct;
    NVIC_InitStruct.NVIC_IRQChannel=TIM2_IRQn;
    NVIC_InitStruct.NVIC_IRQChannelCmd=ENABLE;
    NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority=2;
    NVIC_InitStruct.NVIC_IRQChannelSubPriority=1;
    NVIC_Init(&NVIC_InitStruct);
    TIM_Cmd(TIM2,ENABLE);
}

3.Timer.h代码部分:

c0e5a7baec694bd8b75f1ca40c56e260.png


#ifndef  __TIMER_H
#define  __TIMER_H
void Timer_Init(void);
#endif


相关文章
|
传感器 存储
STM32--TIM定时器(3)
STM32--TIM定时器(3)
STM32--TIM定时器(3)
|
编解码 芯片
STM32--TIM定时器(2)
STM32--TIM定时器(2)
|
1月前
|
传感器
STM32--TIM定时器(1)
STM32--TIM定时器(1)
|
2月前
STM32F103标准外设库——SysTick系统定时器(八)
STM32F103标准外设库——SysTick系统定时器(八)
70 0
STM32F103标准外设库——SysTick系统定时器(八)
|
1月前
STM32定时器的使用
STM32定时器的使用
15 1
|
3月前
|
传感器 物联网 开发者
【STM32基础 CubeMX】定时器的使用
【STM32基础 CubeMX】定时器的使用
111 0
|
6月前
STM32速成笔记(六)—定时器
本文介绍了定时器的概念,作用。针对STM32F1的通用定时器做了详细介绍。此外,介绍了PWM的概念,用途以及STM32F1的PWM,给出了PWM频率的计算方法。最后通过介绍利用定时器的更新中断和PWM这两种方法实现呼吸灯,展示了定时器和PWM的配置步骤,并给出了详细的程序设计。另外,介绍了利用定时器实现按键长短按的检测方法。
115 0
STM32速成笔记(六)—定时器
|
6月前
|
芯片
STM32速成笔记(四)—中断
本文介绍了中断的概念,中断的相关名词,STM32外部中断配置方法以及使用中断的注意事项。给出了外部中断点亮LED程序设计思路和关键代码。
163 0
STM32速成笔记(四)—中断