ZNKT-ST-M/BSP/Src/Timer.c
2025-01-15 16:02:53 +08:00

59 lines
1.2 KiB
C

#include "Timer.h"
#include "Include.h"
#include "Usart.h"
uint8_t usart_test_dat[5] = {0x11,0x22,0x33,0x44,0x55};
uint8_t usart_test_len = 5;
uint8_t tim_cnt = 0;
uint8_t tim_flag = 0;
void Tim2Init(void)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct;
NVIC_InitTypeDef NVIC_InitStruct;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
TIM_DeInit(TIM2);
TIM_TimeBaseInitStruct.TIM_ClockDivision = TIM_CKD_DIV1;
TIM_TimeBaseInitStruct.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInitStruct.TIM_Period = 249;
TIM_TimeBaseInitStruct.TIM_Prescaler = 8399;
TIM_TimeBaseInit(TIM2, &TIM_TimeBaseInitStruct);
NVIC_InitStruct.NVIC_IRQChannel = TIM2_IRQn;
NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE;
NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority = 5;
NVIC_InitStruct.NVIC_IRQChannelSubPriority = 0;
NVIC_Init(&NVIC_InitStruct);
TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE);
TIM_Cmd(TIM2, ENABLE);//¿ªÆô¶¨Ê±50ms
}
void TIM2_IRQHandler(void)
{
if(RESET != TIM_GetITStatus(TIM2, TIM_IT_Update))
{
TIM_ClearITPendingBit(TIM2, TIM_IT_Update);
tim_flag = 1;
tim_cnt++;
if(tim_cnt == 10)
{
GPIO_ToggleBits(GPIOE, GPIO_Pin_2);
}
//TIM_Cmd(TIM2, DISABLE);
}
}