本帖最后由 hpdell 于 2017-9-4 15:07 编辑
使用 pwm 控制背光时,总感觉有点闪烁感,是怎么个情况?
背光亮度调低一点点貌似感觉要好点,调高了闪烁就比较明显些了
IO 口使用的是 PA11,tim1-ch4 通道
程序如下:
#define PWM_AUTO_PERIOD_VALUE 500
#define BRIGHT_MAX (uint16_t)(PWM_AUTO_PERIOD_VALUE/2-1)
#define BRIGHT_MIN (uint16_t)160
#define BRIGHT_STEP 40
//TIM1 PWM部分初始化
//PWM输出初始化
//arr:自动重装值
//psc:时钟预分频数
void MX_PWM_Init(u16 arr, u16 psc)
{
htim1.Instance = TIM1; //定时器3
htim1.Init.Prescaler = psc; //定时器分频
htim1.Init.CounterMode = TIM_COUNTERMODE_UP;//向上计数模式
htim1.Init.Period = arr; //自动重装载值
htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
HAL_TIM_PWM_Init(&htim1); //初始化PWM
sConfigOC.OCMode = TIM_OCMODE_PWM1; //模式选择PWM1
sConfigOC.Pulse = arr / 2; //设置比较值,此值用来确定占空比,
//默认比较值为自动重装载值的一半,即占空比为50%
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH; //输出比较极性为高
HAL_TIM_PWM_ConfigChannel(&htim1, &sConfigOC, TIM_CHANNEL_4);//配置TIM1通道4
HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_4);//开启PWM通道4
LCD_SetBackLight( BRIGHT_MAX ); // 默认设置为 最大
}
MX_PWM_Init(PWM_AUTO_PERIOD_VALUE-1, 216-1); //216M/216=1M的计数频率,自动重装载为PWM_AUTO_PERIOD_VALUE,那么PWM频率为1M/PWM_AUTO_PERIOD_VALUE = ?kHZ
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
你好,我上面的设置有没有错啊 ??
让你把arr缩小
一周热门 更多>