STM32C8T6定时器2中断初始化代码
时间: 2023-06-14 19:03:04 浏览: 101
以下是 STM32C8T6 定时器 2 中断初始化代码示例:
```c
#include "stm32f10x.h"
void TIM2_IRQHandler(void) {
// TODO: 中断处理函数内容
TIM_ClearITPendingBit(TIM2, TIM_IT_Update); // 清除中断标志位
}
void TIM2_Init(void) {
TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct;
NVIC_InitTypeDef NVIC_InitStruct;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
TIM_TimeBaseInitStruct.TIM_Prescaler = 72 - 1; // 预分频系数
TIM_TimeBaseInitStruct.TIM_CounterMode = TIM_CounterMode_Up; // 计数器模式
TIM_TimeBaseInitStruct.TIM_Period = 1000 - 1; // 自动重装载值
TIM_TimeBaseInitStruct.TIM_ClockDivision = TIM_CKD_DIV1; // 时钟分割
TIM_TimeBaseInitStruct.TIM_RepetitionCounter = 0; // 重复计数器值
TIM_TimeBaseInit(TIM2, &TIM_TimeBaseInitStruct);
TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE); // 开启更新中断
NVIC_InitStruct.NVIC_IRQChannel = TIM2_IRQn;
NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority = 0;
NVIC_InitStruct.NVIC_IRQChannelSubPriority = 0;
NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStruct);
TIM_Cmd(TIM2, ENABLE); // 开启定时器
}
```
此代码使用定时器 2,时钟频率为 72MHz。计数器模式为向上计数,自动重装载值为 1000,中断周期为 1ms。你可以根据需求修改计数器的时钟频率、自动重装载值、中断周期等参数,以适应不同的应用场景。需要注意的是,中断处理函数 `TIM2_IRQHandler` 需要你自己实现,这里只是一个空函数。
阅读全文