[STM8] lcd1602乱码

[复制链接]
3817|40
ousj 发表于 2021-8-8 19:10 | 显示全部楼层
你这样测试:先将接收的内容存入一个字符串,然后用串口打印这个字符串观察。如果没问题,将这个字符串显示到LCD
 楼主| wyjie 发表于 2021-8-8 19:12 | 显示全部楼层
中断部分已经改了,没在中断中操作屏了,乱码依旧。
 楼主| wyjie 发表于 2021-8-8 19:14 | 显示全部楼层
目前找到乱码规律是当第二行数据有改变的时候地一行就会出乱码。
例如这样不会有乱码。
int main(void)
{
    //char str[16];
        //u8 c[17] = "12345678901234567";
        
   
    CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);
   
    USART_Configuration();//串口初始化
    GPIO_Configuration();
    LCD1602_Init();
    LCD1602_ClearScreen();

while (1)
   {
      LCD1602_Show_Str(0, 1, c);

    }   
}
这样写就会有乱码
int main(void)
{
         u8 a[16]="abcdefghijklmnop";
        u8 c[16] = "1234567890123456";
        
   
    CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);
   
    USART_Configuration();//串口初始化
    GPIO_Configuration();
    LCD1602_Init();
    LCD1602_ClearScreen();

while (1)
   {
      LCD1602_Show_Str(0, 1, c);

LCD1602_Show_Str(0, 1, a);         //改变了第二行显示的内容,第一行出现乱码

    }   
}
zhanghqi 发表于 2021-8-8 19:17 | 显示全部楼层
我觉得是编码的问题。
zhenykun 发表于 2021-8-8 19:18 | 显示全部楼层
直接显示第二行呢,不显示第一行
 楼主| wyjie 发表于 2021-8-8 19:27 | 显示全部楼层
问题找到了,是数组的长度搞错了,16位字符应该设置到17的,少了个'\0'
juventus9554 发表于 2021-8-8 19:27 | 显示全部楼层
字符库不兼容吧
llljh 发表于 2021-8-8 19:30 | 显示全部楼层
刷新率高不高
xxrs 发表于 2021-8-8 19:32 | 显示全部楼层
是不是有外部干扰啊
wuhany 发表于 2021-8-8 19:34 | 显示全部楼层
接地可靠吗
lizye 发表于 2021-8-8 19:38 | 显示全部楼层
如果只显示一行呢
 楼主| wyjie 发表于 2021-8-8 19:40 | 显示全部楼层

其实还是不大明白,我再琢磨琢磨吧,多谢了哈先
drer 发表于 2021-9-6 08:59 | 显示全部楼层
每次的现象都是一样的吗
gwsan 发表于 2021-9-6 09:01 | 显示全部楼层
别的内容 也用串口试试看
tfqi 发表于 2021-9-6 09:07 | 显示全部楼层
估计是时许有问题
wiba 发表于 2021-9-6 09:11 | 显示全部楼层
在中断中最好不要有操作
八层楼 发表于 2021-9-7 14:40 | 显示全部楼层
可能是时序不严谨
观海 发表于 2021-9-7 14:45 | 显示全部楼层
只显示第二个数据花屏吗
guanjiaer 发表于 2021-9-7 14:49 | 显示全部楼层
接收到的数据对吗
heimaojingzhang 发表于 2021-9-7 14:54 | 显示全部楼层
可以部分的进行刷新吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部