OpenEdv-开源电子网

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

OLED汉字显示问题,OLED_ShowString(u8 x,u8 y,const u8 *p,u8 size)这个函数,第三个参数传入的是汉字的地址 还不太明白

[复制链接]

2

主题

4

帖子

0

精华

新手入门

积分
11
金钱
11
注册时间
2021-12-11
在线时间
2 小时
发表于 2021-12-12 01:24:08 | 显示全部楼层 |阅读模式
1金钱
大佬们好,萌新提问:这是我创建的汉字库:

// 锄(0) 禾(1) 日(2) 当(3) 午(4) 汗(5) 滴(6) 禾(7) 下(8) 土(9) 谁(10) 之(11) 盘(12) 中(13) 餐(14) 粒(15)
// 粒(16) 皆(17) 辛(18) 苦(19)
const unsigned char hanzi_1616[20][32]=
{
{0x02,0x80,0x0C,0x80,0xF7,0xFE,0x24,0x84,0x24,0x88,0x00,0x02,0x3F,0xFE,0x22,0x44,0x22,0x44,0x3F,0xFC,0x00,0x09,0x08,0x06,0xFF,0xF8,0x08,0x01,0x0F,0xFF,0x00,0x00},/*"锄",0*/
{0x00,0x04,0x02,0x04,0x22,0x08,0x22,0x10,0x22,0x20,0x22,0xC0,0x23,0x00,0x3F,0xFF,0x43,0x00,0x42,0xC0,0x42,0x20,0xC2,0x10,0x42,0x08,0x02,0x04,0x00,0x04,0x00,0x00},/*"禾",1*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xFF,0x41,0x02,0x41,0x02,0x41,0x02,0x41,0x02,0x41,0x02,0x41,0x02,0x41,0x02,0x7F,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"日",2*/
{0x00,0x00,0x02,0x02,0x42,0x22,0x22,0x22,0x1A,0x22,0x02,0x22,0x02,0x22,0xFE,0x22,0x02,0x22,0x02,0x22,0x0A,0x22,0x12,0x22,0x63,0xFF,0x00,0x00,0x00,0x00,0x00,0x00},/*"当",3*/
{0x00,0x40,0x02,0x40,0x04,0x40,0x18,0x40,0xF0,0x40,0x10,0x40,0x10,0x40,0x1F,0xFF,0x10,0x40,0x10,0x40,0x10,0x40,0x10,0x40,0x10,0x40,0x00,0x40,0x00,0x40,0x00,0x00},/*"午",4*/
{0x08,0x20,0x06,0x20,0x40,0x3E,0x30,0xC0,0x03,0x00,0x00,0x80,0x20,0x80,0x20,0x80,0x20,0x80,0x3F,0xFF,0x20,0x80,0x20,0x80,0x20,0x80,0x20,0x80,0x00,0x80,0x00,0x00},/*"汗",5*/
{0x08,0x20,0x06,0x20,0x40,0x7E,0x31,0x80,0x00,0x00,0x27,0xFF,0x24,0x00,0x35,0x78,0xAD,0x48,0x67,0xC8,0x2D,0x48,0x35,0x7A,0x24,0x01,0x27,0xFE,0x00,0x00,0x00,0x00},/*"滴",6*/
{0x00,0x04,0x02,0x04,0x22,0x08,0x22,0x10,0x22,0x20,0x22,0xC0,0x23,0x00,0x3F,0xFF,0x43,0x00,0x42,0xC0,0x42,0x20,0xC2,0x10,0x42,0x08,0x02,0x04,0x00,0x04,0x00,0x00},/*"禾",7*/
{0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x7F,0xFF,0x40,0x00,0x40,0x00,0x42,0x00,0x41,0x00,0x40,0x80,0x40,0x60,0x40,0x00,0x40,0x00,0x00,0x00},/*"下",8*/
{0x00,0x02,0x00,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0xFF,0xFE,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x02,0x00,0x02,0x00,0x00},/*"土",9*/
{0x02,0x00,0x42,0x00,0x33,0xFE,0x00,0x04,0x02,0x08,0x04,0x00,0x1F,0xFF,0xF2,0x44,0x12,0x44,0x92,0x44,0x7F,0xFC,0x12,0x44,0x12,0x44,0x12,0x44,0x10,0x04,0x00,0x00},/*"谁",10*/
{0x00,0x00,0x08,0x02,0x08,0x04,0x08,0x08,0x08,0x08,0x08,0x14,0x88,0x22,0x68,0x42,0x08,0x82,0x09,0x02,0x0A,0x02,0x0C,0x02,0x08,0x02,0x00,0x02,0x00,0x02,0x00,0x00},/*"之",11*/
{0x04,0x02,0x04,0x42,0x04,0xBE,0x3F,0x22,0x24,0x22,0x64,0x3E,0xA5,0x22,0x34,0xA2,0x2C,0x22,0x24,0xBE,0x24,0x62,0x3F,0xA2,0x04,0x3E,0x04,0x02,0x04,0x02,0x00,0x00},/*"盘",12*/
{0x00,0x00,0x00,0x00,0x0F,0xF0,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0xFF,0xFF,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0x0F,0xF0,0x00,0x00,0x00,0x00,0x00,0x00},/*"中",13*/
{0x09,0x40,0x11,0x40,0x3A,0x80,0x16,0x80,0xF3,0xFF,0x55,0xA9,0x56,0xAA,0x5D,0xA8,0x02,0xAC,0x43,0xAC,0x55,0xFA,0x48,0x86,0x74,0x89,0x02,0x40,0x00,0x40,0x00,0x00},/*"餐",14*/
{0x02,0x08,0x22,0x10,0x1A,0x60,0x03,0x80,0xFF,0xFF,0x0A,0x80,0x32,0x60,0x08,0x02,0x09,0x82,0x08,0x7A,0x88,0x02,0x68,0x0E,0x08,0x72,0x0B,0x82,0x08,0x02,0x00,0x00},/*"粒",15*/
{0x02,0x08,0x22,0x10,0x1A,0x60,0x03,0x80,0xFF,0xFF,0x0A,0x80,0x32,0x60,0x08,0x02,0x09,0x82,0x08,0x7A,0x88,0x02,0x68,0x0E,0x08,0x72,0x0B,0x82,0x08,0x02,0x00,0x00},/*"粒",16*/
{0x00,0x00,0x00,0x00,0xFE,0x00,0x22,0xFF,0x24,0x92,0x24,0x92,0x01,0x92,0x02,0x92,0xFC,0x92,0x12,0x92,0x22,0x92,0x22,0xFF,0x42,0x00,0x0E,0x00,0x00,0x00,0x00,0x00},/*"皆",17*/
{0x02,0x00,0x02,0x20,0x22,0x20,0x22,0x20,0x2A,0x20,0x26,0x20,0xA2,0x20,0x63,0xFF,0x22,0x20,0x26,0x20,0x2A,0x20,0x22,0x20,0x22,0x20,0x02,0x20,0x02,0x00,0x00,0x00},/*"辛",18*/
{0x21,0x00,0x21,0x00,0x21,0x00,0x21,0x3F,0xF9,0x22,0x21,0x22,0x21,0x22,0x2F,0xE2,0x21,0x22,0x21,0x22,0xF9,0x22,0x21,0x3F,0x21,0x00,0x21,0x00,0x21,0x00,0x00,0x00},/*"苦",19*/
       
};



当我们调用OLED_ShowString(u8 x,u8 y,const u8 *p,u8 size)这个函数时,第三个参数传入的是汉字的地址。例如:OLED_ShowString(0,0,"01234",16); ‘01234’分别是‘锄禾日当午’的地址。
第一到第十个汉字的地址依次是0-9,我发现从10开始,也就是库中的“谁”,地址变成了ASCLL中的“:”,之后依次按照ascll码表的顺序。
我想提问的是:如果汉字过多,超过了ascll的个数,那么之后的地址该如何确定呢?

最佳答案

查看完整内容[请看2#楼]

第三个参数是字符串首地址,也就是编码数据,不是字库!字库是函数内部自己根据编码去查找并获取的
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2021-12-12 01:24:09 | 显示全部楼层
第三个参数是字符串首地址,也就是编码数据,不是字库!字库是函数内部自己根据编码去查找并获取的
回复

使用道具 举报

15

主题

1061

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
3627
金钱
3627
注册时间
2019-8-14
在线时间
1054 小时
发表于 2021-12-13 11:22:11 | 显示全部楼层
你要显示多个汉字的话,那就使用字库
回复

使用道具 举报

2

主题

4

帖子

0

精华

新手入门

积分
11
金钱
11
注册时间
2021-12-11
在线时间
2 小时
 楼主| 发表于 2021-12-19 02:59:01 | 显示全部楼层
hou18 发表于 2021-12-13 11:22
你要显示多个汉字的话,那就使用字库

可能我的表达有点问题,我就是想了解下为什么地址顺序是按ASCLL来的。。。如果汉字数量超过了ASCLL那后面的汉字地址该是多少。
回复

使用道具 举报

2

主题

4

帖子

0

精华

新手入门

积分
11
金钱
11
注册时间
2021-12-11
在线时间
2 小时
 楼主| 发表于 2021-12-19 02:59:25 | 显示全部楼层
正点原子 发表于 2021-12-12 01:24
第三个参数是字符串首地址,也就是编码数据,不是字库!字库是函数内部自己根据编码去查找并获取的

可能我的表达有点问题,我就是想了解下为什么地址顺序是按ASCLL来的。。。如果汉字数量超过了ASCLL那后面的汉字地址该是多少。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-19 14:06

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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