我用定时器2定时12.5us 输出到GPIOB口中的一个脚上,配置如下
void Tim2_Init(void)
{
/* Enable TIM2 clock */
CLK_PeripheralClockConfig(CLK_Peripheral_TIM2, ENABLE);
TIM2_DeInit();
TIM2->IER = 0x00; // 禁止中断
TIM2->PSCR = 0x00; // 计数器时钟=主时钟/128=2MHZ/2
// 设定重装载时的寄存器值
// 注意必须保证先写入高8 位,再写入低8 位
TIM2->ARRH = 0x00; // 设定重装载时的寄存器的高8 位
TIM2->ARRL = 0x32;
TIM2->CNTRH = 0x00; // 设定计数器的初值
TIM2->CNTRL = 0x32;
TIM2->EGR = 0x01; // 允许产生更新事件
TIM2->EGR = 0x01; // 允许产生更新事件
// 相当于计数器周期为1uS
// 定时周期=1*60000=60000uS=60ms
TIM2->CR1 |= 0x01; // b0 = 1,允许计数器工作
// b1 = 0,允许更新
// 设置控制器,启动定时器
TIM2->IER = 0x01; // 允许更新中断
TIM2->SR1 = 0X00;
}
结果波形不对,帮忙查看一哈哪里配置有问题? |