使用 pwm 控制背光时,总感觉有点闪烁感,是怎么个情况?

2019-07-20 12:10发布

本帖最后由 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




















友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。