jinglixixi 发表于 2023-8-5 14:51

【HC32L196PCTA测评】+LCD屏显示篇

HC32L196PCTA开发板配有笔段式的液晶屏,并有相应的显示例程,其显示效果如图1所示。图1显示效果
该液晶屏的驱动方式:1/4 Duty、1/3 Bias、工作电压:3V3,其几何尺寸及引脚功能如图2所示。图2几何尺寸及引脚功能
由于该例程只是一个测试例程,因此在实际使用过程中,该相应对它进一步完善,以实现数据显示的函数化。
为此,相应对例程加以分析和修改。其主程序为:int32_t main(void)
{
    Sysctrl_ClkSourceEnable(SysctrlClkRCL,TRUE);             ///< 使能RCL时钟
    Sysctrl_SetRCLTrim(SysctrlRclFreq32768);                ///< 配置内部低速时钟频率为32.768kHz
    Sysctrl_SetPeripheralGate(SysctrlPeripheralLcd,TRUE);   ///< 开启LCD时钟
    Sysctrl_SetPeripheralGate(SysctrlPeripheralGpio,TRUE);    ///< 开启GPIO时钟
    App_PortCfg();               ///< LCD端口配置
    App_LcdCfg();                ///< LCD模块配置
    Lcd_ClearDisp();            ///< 清屏
    Lcd_WriteRam(0,0x0f0f0f0f);   ///< 赋值寄存器LCDRAM0
    Lcd_WriteRam(1,0x0f0f0f0f);   ///< 赋值寄存器LCDRAM1
    while(1)
    {
      ;
    }
}

其引脚工作模式配置函数为:void App_PortCfg(void)
{
    Gpio_SetAnalogMode(GpioPortA, GpioPin9);//COM0
    Gpio_SetAnalogMode(GpioPortA, GpioPin10); //COM1
    Gpio_SetAnalogMode(GpioPortA, GpioPin11); //COM2
    Gpio_SetAnalogMode(GpioPortA, GpioPin12); //COM3
    Gpio_SetAnalogMode(GpioPortA, GpioPin8);//SEG0
    Gpio_SetAnalogMode(GpioPortC, GpioPin9);//SEG1
    Gpio_SetAnalogMode(GpioPortC, GpioPin8);//SEG2
    Gpio_SetAnalogMode(GpioPortC, GpioPin7);//SEG3
    Gpio_SetAnalogMode(GpioPortC, GpioPin6);//SEG4
    Gpio_SetAnalogMode(GpioPortB, GpioPin15); //SEG5
    Gpio_SetAnalogMode(GpioPortB, GpioPin14); //SEG6
    Gpio_SetAnalogMode(GpioPortB, GpioPin13); //SEG7
    Gpio_SetAnalogMode(GpioPortB, GpioPin3);//VLCDH
    Gpio_SetAnalogMode(GpioPortB, GpioPin4);//VLCD3
    Gpio_SetAnalogMode(GpioPortB, GpioPin5);//VLCD2
    Gpio_SetAnalogMode(GpioPortB, GpioPin6);//VLCD1
}

LCD 屏相指定寄存器写入数据的函数为:en_result_t Lcd_WriteRam(uint8_t u8Row,uint32_t u32Data)
{
    en_result_tenRet = Error;
    volatile uint32_t *ram = NULL;
    ram = (volatile uint32_t*)&M0P_LCD->RAM0;
    if (u8Row > 15)
    {
      enRet = ErrorInvalidParameter;
      return enRet;
    }
    ram += u8Row;
    *ram = u32Data;
    enRet = Ok;
    returnenRet;
}

为实现数字的显示,所定义显示码为:int16_td={0x0f05,0x0600,0x0b06,0x0f02,0x0603,0x0d03,0x0d07,0x0700,0x0f07,0x0f03};
实现数字显示的测试主程序为:int32_t main(void)
{
        int8_t i=0;
        Sysctrl_ClkSourceEnable(SysctrlClkRCL,TRUE);            ///< 使能RCL时钟
    Sysctrl_SetRCLTrim(SysctrlRclFreq32768);                ///< 配置内部低速时钟频率为32.768kHz
    Sysctrl_SetPeripheralGate(SysctrlPeripheralLcd,TRUE);      ///< 开启LCD时钟
    Sysctrl_SetPeripheralGate(SysctrlPeripheralGpio,TRUE);   ///< 开启GPIO时钟
    App_PortCfg();               ///< LCD端口配置
    App_LcdCfg();                ///< LCD模块配置
    Lcd_ClearDisp();            ///< 清屏
    Lcd_WriteRam(0,0x00000000);
        Lcd_WriteRam(1,0x00000000);
while(1)
    {
                          Lcd_WriteRam(0,(d<<16)+d);
                          Lcd_WriteRam(1,(d<<16)+d);
                          i=(i+1)%10;
                          delay1ms(1000);
    }
}

经程序的编译与下载,其显示效果如图3所示。图3 测试效果

chenjun89 发表于 2023-8-5 16:59

传统液晶屏除了没有彩屏的华丽,但是胜在稳定可靠。

gaoyang9992006 发表于 2023-8-31 09:07

chenjun89 发表于 2023-8-5 16:59
传统液晶屏除了没有彩屏的华丽,但是胜在稳定可靠。

应该是超低功耗吧

wangzsa 发表于 2023-8-31 20:15

超低功耗

xiaoxiaojs 发表于 2024-3-20 15:44

稳定可靠

guijial511 发表于 2024-3-23 12:45

看起来还以为是一排开发板,哈哈。

小夏天的大西瓜 发表于 2024-3-26 17:30

传统液晶屏确实很实用,而且稳定性好

LOVEEVER 发表于 2024-3-27 11:12

传统液晶屏还是比较稳定可靠

xdvca 发表于 2024-7-31 22:38

在处理带有LCD显示屏的嵌入式系统时,优化显示效果并确保数据的正确显示是关键任务。
页: [1]
查看完整版本: 【HC32L196PCTA测评】+LCD屏显示篇