大大们,小弟现在要使用STM8L151F3(TSSOP20) 定时器2 PWM功能(PC6脚)输出31.25K 占空比50%的方波。
现在初始化不正确,在示波器上抓不到波形。
想了半天不知哪里出错,请帮小弟看看吧。
下面是我的初始化代码。
PC6已配置成推挽输出,TIM2的时钟已经使能。
//=========================================================//TIM2PWM初始化
void Time2PWMInit(void)
{
TIM2_CR1=0b00000001; //使能计数器
TIM2_CR2=0b00000000; //
TIM2_SMCR=0b00000000;
TIM2_IER=0b00000000; //禁止中断
TIM2_SR1=0b00000000; //中断标志
TIM2_SR2=0b00000000; //过捕获标志
TIM2_EGR=0b00000000; //事件产生
TIM2_PSCR=0b00000001; //2分频
TIM2_ARRH=0;
TIM2_ARRL=255; //PWM频率为16M/2/256=31.25K (内部16M晶振)
TIM2_CCMR2=0b01101000; //通道2 PWM输出模式1
TIM2_CCER1=0b00010000; //通道2输出极性(高电平有效)并开启OC2信号输出到对应的输出引脚
TIM2_CCR2H=0;
TIM2_CCR2L=128; //占空比 ↑-->TIM2_CCR2增大
TIM2_CNTRH=0;
TIM2_CNTRL=0; //计数器清0
TIM2_BKR=0b11000000; //使能OC输出
}
void main()
{
Time2PWMInit();
while(1)
{
}
} |