你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

stm32L驱动段式液晶

[复制链接]
木易-357428 发布时间:2015-1-7 18:15
很多朋友在驱动STM32l段式液晶的时候,代码如下:
void LCD_GLASS_Init(void)
{
    LCD_InitTypeDef LCD_InitStruct;
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_LCD, ENABLE);
     
    LCD_InitStruct.LCD_Prescaler = LCD_Prescaler_2;
    LCD_InitStruct.LCD_Divider = LCD_Divider_16;
    LCD_InitStruct.LCD_Duty = LCD_Duty_1_8;
    LCD_InitStruct.LCD_Bias = LCD_Bias_1_4 ;
    LCD_InitStruct.LCD_VoltageSource = LCD_VoltageSource_Internal;
   
     
    /* Initialize the LCD */
    LCD_Init(&LCD_InitStruct);
            
    LCD_MuxSegmentCmd(ENABLE);
      
    /* To set contrast to mean value */
    LCD_ContrastConfig(LCD_Contrast_Level_6);
      
    LCD_DeadTimeConfig(LCD_DeadTime_0);
    LCD_PulseOnDurationConfig(LCD_PulseOnDuration_4);
   
    /* Wait Until the LCD FCR register is synchronized */
    LCD_WaitForSynchro();
      
    /* Enable LCD peripheral */
    LCD_Cmd(ENABLE);
      
    /* Wait Until the LCD is enabled */
    while(LCD_GetFlagStatus(LCD_FLAG_ENS) == RESET)
    {
    }
    /*!< Wait Until the LCD Booster is ready */  
    while(LCD_GetFlagStatus(LCD_FLAG_RDY) == RESET)
    {
    }
   
    LCD_BlinkConfig(LCD_BlinkMode_Off,LCD_BlinkFrequency_Div1024);   
    LCD_GLASS_Clear();
}


详细的解释我就不说了,大家常遇到的问题是程序执行到这句的时候“   while(LCD_GetFlagStatus(LCD_FLAG_ENS) == RESET)  ”无法过去,而死在这。我在做这个项目的时候,也有很多同事遇到了这种情况,所以在这里分享一下问题的原因。
首先说一下,这样配置段式液晶没有问题,但是,要知道段式液晶的时钟是来源于何处。STM32L上datasheet有说明,LCD段式液晶的时钟来源于RTC,也就是说,想使用段式液晶,必须先配置好RTC时钟。希望可以帮到遇到这个问题的朋友们。

收藏 评论1 发布时间:2015-1-7 18:15

举报

1个回答
默罕默德.ST 回答时间:2015-1-7 19:11:21
代码  看起来有点晕

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版