初级会员

- 积分
- 70
- 金钱
- 70
- 注册时间
- 2014-5-19
- 在线时间
- 6 小时
|
5金钱
各位大侠,小弟刚刚接触STM32不久,遇到一个问题,使用stm32的pa2输出pwm,用示波器发现在启动定时器的时候,前面有一个低电平的小脉冲,然后才是真正的pwm输出,脉冲大概是7us。。有怀疑过是定时器的初始值问题,在启动定时器前设置初始值,但是发现前面依然有低电平脉冲,而且脉宽变大了,大概有300us左右,然后才开始正常的pwm。。尝试过更改为pwm2以及高电平输出,发现前面的脉冲没了,但是在停止pwm的时候,在停止pwm的时候多了一个小脉冲。下面是初始化代码,恳请各位大虾支个招!!
TIM_DeInit(TIM5);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM5, ENABLE);
TIM5->ARR = temp; //设定计数器自动重装值
TIM5->PSC =div_c; //预分频器设置
TIM5->CR1 |= 1<<4; //向下计数模式
TIM5->CCMR2|=6<<4; //CH3 PWM1模式
TIM5->CCER |=1<<8; //OC3 输出使能
TIM5->CCR3 = temp / 2; //设置了待装入捕获比较寄存器的脉冲值
TIM5->CCER |=1<<9; //OC3 输出低电平
TIM5->CCMR2|=1<<3; //使能或者失能TIMx在CCR3上的预装载寄存器
TIM5->CR1 |=0x0080; //ARPE使能 自动重装载预装载允许位
GPIOA->CRL &= 0XFFFFF0FF;//PA2清0
GPIOA->CRL |= 0X00000B00;//复用功能输出(推挽50MHz输出)
|
|