OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6049|回复: 1

STM32驱动 LCD1602A 两行黑格

[复制链接]

28

主题

360

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1027
金钱
1027
注册时间
2021-2-4
在线时间
146 小时
发表于 2022-12-31 12:42:24 | 显示全部楼层 |阅读模式
1金钱
如题: 初始化完后显示的是两行黑格VO通过1K电阻接到GND
供电是5V 信号是3.3V 用的STM32F103C8

代码如下(工程在附件里):

void BSP_LCD_Init(void)
{
    BSP_LCD1602_0.LCD_DB0_Pinx = LCD_DB0_Pin;
    BSP_LCD1602_0.LCD_DB0_Portx = LCD_DB0_GPIO_Port;
    BSP_LCD1602_0.LCD_DB1_Pinx = LCD_DB1_Pin;
    BSP_LCD1602_0.LCD_DB1_Portx = LCD_DB1_GPIO_Port;
    BSP_LCD1602_0.LCD_DB2_Pinx = LCD_DB2_Pin;
    BSP_LCD1602_0.LCD_DB2_Portx = LCD_DB2_GPIO_Port;
    BSP_LCD1602_0.LCD_DB3_Pinx = LCD_DB3_Pin;
    BSP_LCD1602_0.LCD_DB3_Portx = LCD_DB3_GPIO_Port;
    BSP_LCD1602_0.LCD_DB4_Pinx = LCD_DB4_Pin;
    BSP_LCD1602_0.LCD_DB4_Portx = LCD_DB4_GPIO_Port;
    BSP_LCD1602_0.LCD_DB5_Pinx = LCD_DB5_Pin;
    BSP_LCD1602_0.LCD_DB5_Portx = LCD_DB5_GPIO_Port;
    BSP_LCD1602_0.LCD_DB6_Pinx = LCD_DB6_Pin;
    BSP_LCD1602_0.LCD_DB6_Portx = LCD_DB6_GPIO_Port;
    BSP_LCD1602_0.LCD_DB7_Pinx = LCD_DB7_Pin;
    BSP_LCD1602_0.LCD_DB7_Portx = LCD_DB7_GPIO_Port;
    BSP_LCD1602_0.LCD_RS_Pinx = LCD_RS_Pin;
    BSP_LCD1602_0.LCD_RS_Portx = LCD_RS_GPIO_Port;
    BSP_LCD1602_0.LCD_RW_Pinx = LCD_RW_Pin;
    BSP_LCD1602_0.LCD_RW_Portx = LCD_RW_GPIO_Port;
    BSP_LCD1602_0.LCD_EN_Pinx = LCD_EN_Pin;
    BSP_LCD1602_0.LCD_EN_Portx = LCD_EN_GPIO_Port;

    for (uint8_t i = 0; i < LCD_SUM; i++)
    {
        LCD_Array[i].CMD = 0;
        LCD_Array[i].Data = 0;
        LCD_Array[i].Flag_Enable = 0;
    }

    HAL_Delay(15);
    BSP_LCD_Write_CMD(&BSP_LCD1602_0, 0x38);
    HAL_Delay(5);
    BSP_LCD_Write_CMD(&BSP_LCD1602_0, 0x0c);
    HAL_Delay(5);
    BSP_LCD_Write_CMD(&BSP_LCD1602_0, 0x06);
    HAL_Delay(5);
    BSP_LCD_Write_CMD(&BSP_LCD1602_0, 0x01);
    HAL_Delay(5);
    // BSP_LCD_Write_CMD(&BSP_LCD1602_0, 0x38);
}


void BSP_LCD_Write_CMD(LCD_Conf *LCD_Struct, uint8_t CMD)
{
    LCD_RS_PIN(GPIO_PIN_RESET);
    LCD_RW_PIN(GPIO_PIN_RESET);
    LCD_EN_PIN(GPIO_PIN_RESET);
    LCD_DATA_PIN = CMD;

    HAL_Delay(2);
    LCD_EN_PIN(GPIO_PIN_SET);
    HAL_Delay(2);
    LCD_EN_PIN(GPIO_PIN_RESET);
}

void BSP_LCD_Write_Data(LCD_Conf *LCD_Struct, uint8_t Data)
{
    LCD_RS_PIN(GPIO_PIN_SET);
    LCD_RW_PIN(GPIO_PIN_RESET);
    LCD_EN_PIN(GPIO_PIN_RESET);
    LCD_DATA_PIN = Data;

    HAL_Delay(2);
    LCD_EN_PIN(GPIO_PIN_SET);
    HAL_Delay(2);
    LCD_EN_PIN(GPIO_PIN_RESET);
}



Automobile_Brake_Detection_System_V0.1.0.zip

10.84 MB, 下载次数: 29

完整工程

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

28

主题

360

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1027
金钱
1027
注册时间
2021-2-4
在线时间
146 小时
 楼主| 发表于 2022-12-31 13:04:04 | 显示全部楼层
问题解决了 是我没有发送字体
一直以为初始化完是干净的
结果就是有底格
这个贴子就留着当库文件吧

LCD1602A和AT24c02的库
基于STM32CubeMX
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-24 18:46

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表