我正在使用
STM32F303CB 控制器。
系统时钟 - 72MHz
APB1ENR - 定时器为 72MHz
我按照参考手册按照以下步骤操作。
timer2 初始化:
RCC->APB1ENR|= RCC_APB1ENR_TIM2EN;
TIM2->ARR = 72000-1;
TIM2->CCR1= 4000;
TIM2->PSC = 1000-1;
TIM2->DIER = TIM_DIER_CC1IE;
TIM2->CCMR1 = TIM_CCMR1_OC1M_0|TIM_CCMR1_OC1M_1;
TIM2->CCMR1 &= ~(TIM_CCMR1_OC1PE);
TIM2->CCER |= TIM_CCER_CC1E;
TIM2->CR1 |= TIM_CR1_CEN;
while (!(TIM2->SR & (1<<0)));
NVIC_EnableIRQ(TIM2_IRQn);
我已经将定时器初始化为 1 秒。
我的应用程序需要定时器周期的输出比较功能。
例如:
当计数器与 CCR1(4000) 相匹配时,中断应该产生并且 CCR1 更新为新值 CCR1(15000),反之亦然。
我是否犯了任何错误或需要执行更多步骤。