stm32f103 TIM3中断初始化
时间: 2023-05-26 09:03:06 浏览: 122
以下是STM32F103的TIM3中断初始化代码,包含了TIM3功能的配置和中断优先级的设置。
```
// 在STM32F103的单片机中,TIM3的中断向量是TIM3_IRQHandler
void TIM3_IRQHandler(void){
// 在此处添加中断处理程序
}
void TIM3_init(void){
// 开启TIM3的时钟
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);
// 初始化定时器
TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct;
TIM_TimeBaseInitStruct.TIM_Period = 1000 - 1; // 设置计数器自动重装值
TIM_TimeBaseInitStruct.TIM_Prescaler = 7200 - 1; // 设置分频系数
TIM_TimeBaseInitStruct.TIM_ClockDivision = 0;
TIM_TimeBaseInitStruct.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM3, &TIM_TimeBaseInitStruct);
// 打开TIM3的中断开关
TIM_ITConfig(TIM3, TIM_IT_Update, ENABLE);
// 配置NVIC中断优先级
NVIC_InitTypeDef NVIC_InitStruct;
NVIC_InitStruct.NVIC_IRQChannel = TIM3_IRQn; // 指定TIM3的中断向量名
NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority = 0;
NVIC_InitStruct.NVIC_IRQChannelSubPriority = 0;
NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStruct);
// 启动计数器
TIM_Cmd(TIM3, ENABLE);
}
```
需要注意以下几点:
1. TIM3中断向量在不同的MCU型号中可能会有所不同。
2. TIM_Period的值应该根据实际需求设置。
3. TIM_Prescaler的值也应该根据实际需求设置。本例中,将7200分频后计数器每1ms加1。
阅读全文