stm32,在电脑上输入汉字,通过can口接受并在OLED上显示。。帮我分析下该怎么做,主要是汉字字库不会使用

[复制链接]
查看11 | 回复2 | 2013-2-28 11:27:21 | 显示全部楼层 |阅读模式
电脑上输入的中文编码一般使用GB2312或GBK编码,发送时发汉字的编码至单片机就可以,汉字库可以存储在内部flash或者外部flash,如外部SPI的flash比较便宜,字库存储时直接从需要存储的首地址连续存储即可,该地址可以记为flash的偏移地址,汉字字库的数据存放地址通过汉字的编码算出,具体算法可参考http://wenku.baidu.com/view/a4b24941336c1eb91a375dc0.html,算出来的地址为字在字库中的偏移地址。则最后要访问的地址就是:flash偏移地址+字库中偏移地址读取的数据长度与点阵大小有关,与16*16点阵字库的数据为32字节。将读取出来的数据直接按画点的方法画至OLED上即可,但需要注...
回复

使用道具 举报

千问 | 2013-2-28 11:27:21 | 显示全部楼层
直接输入“中文”然后按char *类型一直取到 ‘\0’并逐个往CAN总线上发接收:OLED如果带字库字节把接收到的内码丢出去就可以;如果不含字库通过比较接收到的数据的第8位,如果是0表示是ACSII字库,按ACSII点阵方式处理如果第8位是1表示是汉字,用同一种字符集做索引(GB2312、GBK、UTF-8)调用点阵图形...
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行