打印
[STM8]

STM8L的LCD调试时不亮

[复制链接]
787|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
STM8L052驱动LCD字段屏,烧录成功程序后上电复位LCD屏能显示,但是在DEBUG时LCD屏不亮。用万用表测量,DEBUG模式SEG和COM口之间没有压差,上电复位正常显示时压差在1V左右。

DEBUG模式没有打断点,直接全速运行。
求各位大佬指教!!!!!


附程序如下:
void main(void)
{

        GPIO_Init(GPIOD,GPIO_Pin_5,GPIO_Mode_Out_PP_Low_Fast);
        GPIO_SetBits(GPIOD,GPIO_Pin_5);
        
  /* Configures the LCD GLASS relative GPIO port IOs and LCD peripheral */
          LCD_GLASS_Init();


  /* Enable RTC clock */
          CLK_PeripheralClockConfig(CLK_Peripheral_RTC, ENABLE);
#if 1  
  /* Configures the RTC */
          RTC_WakeUpClockConfig(RTC_WakeUpClock_CK_SPRE_16bits);
          RTC_ITConfig(RTC_IT_WUT, ENABLE);

  /* Enable general Interrupt*/
          enableInterrupts();
#endif
        LCD->RAM[LCD_RAMRegister_0] =  0x00;
        LCD->RAM[LCD_RAMRegister_0] =  0xff;
        LCD->RAM[LCD_RAMRegister_1] =  0x00;
        LCD->RAM[LCD_RAMRegister_1] =  0xff;
        LCD->RAM[LCD_RAMRegister_2] =  0x00;
        LCD->RAM[LCD_RAMRegister_2] =  0xff;
        LCD->RAM[LCD_RAMRegister_3] =  0x00;
        LCD->RAM[LCD_RAMRegister_3] =  0xff;
        LCD->RAM[LCD_RAMRegister_4] =  0x00;
        LCD->RAM[LCD_RAMRegister_4] =  0xff;
        LCD->RAM[LCD_RAMRegister_5] =  0x00;
        LCD->RAM[LCD_RAMRegister_5] =  0xff;


  while (1)
  {
          LCD->RAM[LCD_RAMRegister_0] =  0x00;
          LCD->RAM[LCD_RAMRegister_0] =  0xff;
  }
}


/**
  * @brief  Configures the LCD GLASS relative GPIO port IOs and LCD peripheral.
  * @param  None
  * @retval None
  */
void LCD_GLASS_Init(void)
{

  /*
    The LCD is configured as follow:
     - clock source = LSE (32.768 KHz)
     - Voltage source = Internal
     - Prescaler = 2
     - Divider = 18 (16 + 2)  
     - Mode = 1/4 Duty, 1/3 Bias
     - LCD frequency = (clock source * Duty) / (Prescaler * Divider)
                     = 228 Hz ==> Frame frequency = 57 Hz */

//        CLK_PeripheralClockConfig(CLK_Peripheral_RTC, ENABLE);
        /* Enable LCD clock */
        CLK_PeripheralClockConfig(CLK_Peripheral_LCD, ENABLE);
        CLK_RTCClockConfig(CLK_RTCCLKSource_LSE, CLK_RTCCLKDiv_1);
        
        LCD_DeInit();
        /* Initialize the LCD */
        LCD_Init(LCD_Prescaler_2, LCD_Divider_18, LCD_Duty_1_4,
                         LCD_Bias_1_2, LCD_VoltageSource_External);//LCD_VoltageSource_InternalLCD_VoltageSource_External

        /* Mask register*/
        LCD_PortMaskConfig(LCD_PortMaskRegister_0, 0xFF);
        LCD_PortMaskConfig(LCD_PortMaskRegister_1, 0x00);
        LCD_PortMaskConfig(LCD_PortMaskRegister_2, 0x00);
        LCD_PortMaskConfig(LCD_PortMaskRegister_3, 0x00);

        LCD_ContrastConfig(LCD_Contrast_Level_7);
        LCD_DeadTimeConfig(LCD_DeadTime_0);
        LCD_PulseOnDurationConfig(LCD_PulseOnDuration_1);
//        Delay_Ms(80);
        LCD_Cmd(ENABLE); /*!< Enable LCD peripheral */
}

使用特权

评论回复
沙发
做题小帮手| | 2021-1-7 10:10 | 只看该作者
我目前用stm8L152K4T6也在调试LCD,用示波器看端口电压应该在1.8v~2.45v这样,端口电压有点低了吧,

使用特权

评论回复
板凳
做题小帮手| | 2021-1-7 10:57 | 只看该作者
本帖最后由 做题小帮手 于 2021-1-7 15:36 编辑

1)大家好,我用的是STM8L152K4T6单片机,液晶屏厂家给的资料是1/4 DUTT,1/3 BIAS,不论怎样修改分频系数,显示总是很暗,闪烁。将1/4改成1/8就显示正常了。
2)现在遇到的问题是,我向LCD_WriteRAM(LCD_RAMRegister_1,0x01);  LCD_WriteRAM(LCD_RAMRegister_3,0x10)里面置高无法点亮,很疑惑。
3)//COM0--PA4,COM1--PA5,COM2--PA6,COM3--PD1,SEG8--PD2,SEG9--PD3,
  用示波器看COM0--PA4,SEG8--PD2,SEG9--PD3,均为方波,但是COM1--PA5,COM2--PA6,COM3--PD1,显示波形不正常。下面是波形图,还请多多指教。

使用特权

评论回复
地板
观海| | 2021-2-1 23:24 | 只看该作者
硬件连接没有问题吗

使用特权

评论回复
5
guanjiaer| | 2021-2-1 23:27 | 只看该作者
从代码上看没有什么问题

使用特权

评论回复
6
heimaojingzhang| | 2021-2-1 23:30 | 只看该作者
难道这是普遍的现象?

使用特权

评论回复
7
keaibukelian| | 2021-2-1 23:31 | 只看该作者
有没有闪亮的现象呢

使用特权

评论回复
8
labasi| | 2021-2-1 23:32 | 只看该作者
是不是电源的功率不够啊  量一下供电的压降是多少

使用特权

评论回复
9
stormwind123| | 2021-2-2 09:55 | 只看该作者

看看晶振在调试时是否震荡有异常

使用特权

评论回复
10
374798178| | 2021-9-13 09:55 | 只看该作者
STM8L152K4T6    有现货哦  价格很好  有需要的联系哦   15919800171

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2028

主题

7308

帖子

10

粉丝