硬汉嵌入式论坛

 找回密码
 立即注册
查看: 941|回复: 5
收起左侧

[LVGL] 如何把串口发送过来的汉字显示在GUI上?

[复制链接]

22

主题

96

回帖

162

积分

初级会员

积分
162
发表于 2021-12-9 14:08:02 | 显示全部楼层 |阅读模式
如题,板子上已经做好了外部中文字库,但串口接收到的是byte数据,该如何将这些byte数据与字库对应起来,再显示在GUI上呢?
比如串口发送“用户”两个汉字,串口接收到的是D3 C3 BB A7;
怎么把这些码与字库的汉字对应起来呢?
回复

使用道具 举报

39

主题

929

回帖

1051

积分

至尊会员

积分
1051
发表于 2021-12-9 15:31:27 | 显示全部楼层
这不是很简单吗?举例来说,你在代码里面显示0123,假如是SetText("0123");那么你的代码里面会将"0123"字符串生成一个数组:0x30 0x31 0x32 0x33 0x00,然后将这个数组送显示。
现在你要通过串口显示0123,你串口接收到0x30 0x31 0x32 0x33,你是不是得创建一个数组ucData[5],把他们放到数组ucData里面,再加上结束符ucData[4]=0x00,最后SetText(ucData);就行了不是吗?

当然有些场合需要转码,比如你接收到的是GBK码,而显示函数需要UTF8,那你就需要将接收的GBK转成UTF8,再送显示。
回复

使用道具 举报

22

主题

96

回帖

162

积分

初级会员

积分
162
 楼主| 发表于 2021-12-9 16:02:28 | 显示全部楼层
ghslfgkkl88 发表于 2021-12-9 15:31
这不是很简单吗?举例来说,你在代码里面显示0123,假如是SetText("0123");那么你的代码里面会将"0123"字符 ...

是的,收到的是GBK码,不能用数组直接转
回复

使用道具 举报

39

主题

929

回帖

1051

积分

至尊会员

积分
1051
发表于 2021-12-9 16:11:09 | 显示全部楼层
crazymcu 发表于 2021-12-9 16:02
是的,收到的是GBK码,不能用数组直接转

你自己转好再放数组就行了,或者发送之前就转好,这样直接送显示就行。
回复

使用道具 举报

22

主题

96

回帖

162

积分

初级会员

积分
162
 楼主| 发表于 2021-12-9 17:43:36 | 显示全部楼层
ghslfgkkl88 发表于 2021-12-9 16:11
你自己转好再放数组就行了,或者发送之前就转好,这样直接送显示就行。

现在主要头疼的是,串口发来的是一串汉字字母数字组成的包,不知道怎么去区分哪两个byte是组成汉字的,哪个byte又是数字,要是搞混了就是乱码了
回复

使用道具 举报

7

主题

23

回帖

44

积分

新手上路

积分
44
发表于 2021-12-10 09:53:47 | 显示全部楼层
你这不就是串口屏的玩法吗?迪文的就是通过串口发指令显示图片文字,和你的需求一样的,不过现在要你自己去弄个协议,帧头帧尾啥的啦接收GBK或者UTF8显示
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-21 22:22 , Processed in 0.162209 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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