渣渣华 发表于 2020-2-27 10:46:54

STM32L152驱动段码屏一直卡死在初始化部分?该怎么解决?

确认过板子的硬件没有问题,能用IO口直接驱动点亮。用芯片内部驱动就会出问题。以下是我的初始化代码:
void LCD_GLASS_Init(void)
{
LCD_InitTypeDef LCD_InitStructure;


LCD_GPIOConfig(); /*!< Configure the LCD Glass GPIO pins */

/*!< Configure the LCD interface -------------------------------------------*/
RCC_APB1PeriphClockCmd(RCC_APB1Periph_LCD, ENABLE); /*!< Enable LCD APB1 Clock */

LCD_InitStructure.LCD_Prescaler = LCD_Prescaler_8;
LCD_InitStructure.LCD_Divider = LCD_Divider_16;
LCD_InitStructure.LCD_Duty = LCD_Duty_1_8;
LCD_InitStructure.LCD_Bias = LCD_Bias_1_4;
LCD_InitStructure.LCD_VoltageSource = LCD_VoltageSource_Internal;
LCD_Init(&LCD_InitStructure);

//LCD_HighDriveCmd(ENABLE);
/*!< Configure the Pulse On Duration*/
LCD_PulseOnDurationConfig(LCD_PulseOnDuration_2);

/*!< Configure the LCD Contrast (3.51V) */
LCD_ContrastConfig(LCD_Contrast_Level_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)
{
}

}


渣渣华 发表于 2020-2-27 10:59:37

有人知道怎么解决这个问题吗?

butterflyspring 发表于 2020-3-5 17:18:07

检查一下外部的VLCD引脚的上电容。使用内部电压转换器必须有这个电容的。剩下的启动软件检查标志位,至少能通过转换器判断的标志位。另外软件库里有很多例程代码可以试试:)

渣渣华 发表于 2020-3-5 19:28:32

这个问题已经解决了。电容是没有问题的。

butterflyspring 发表于 2020-3-9 11:50:13

方便的话可以分享一下原因:)

渣渣华 发表于 2020-3-11 09:04:28

butterflyspring 发表于 2020-3-9 11:50
方便的话可以分享一下原因

卡在那一步,从手册看是没有同步,在我加入RTC时钟之后就不会卡在那里了。

butterflyspring 发表于 2020-3-16 16:54:24

渣渣华 发表于 2020-3-11 09:04
卡在那一步,从手册看是没有同步,在我加入RTC时钟之后就不会卡在那里了。 ...

那应该是时钟源选择了。谢谢!
页: [1]
查看完整版本: STM32L152驱动段码屏一直卡死在初始化部分?该怎么解决?