OpenEdv-开源电子网

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

汉字显示实验问题

[复制链接]

170

主题

917

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1824
金钱
1824
注册时间
2013-4-13
在线时间
63 小时
发表于 2014-1-15 23:38:49 | 显示全部楼层 |阅读模式
最近开始学习FATFS和汉字显示了。但是感觉学习有点吃力,稀里糊涂的。

1,cc936.c里的那个特大号数组就是汉字GBK码吗?

2,面的描述,不知道对错。请高人讲解一下。

如,“国”字的内码为:0xb9(高字节代表区码)和0xfa(低字节表示位码);其区位码是2590,这个2590是怎么得出的呢?代表什么意思呢?因为,区码=内码高字节-0xa0,故“国”字的区码=0xb9-0xa0=0x19,将16进制的0x19转换成十进制数结果是25;同理,“国”字的位码=0xfa-0xa0=0x5a,将16进制的0x5a转换成十进制数结果是90.所以,它的区位码就是2590,25代表25区,90代表25区的第90个字。区位码2590则代表“国”字的点阵数据在字库里面的地址是2590?


手艺人要内外兼修。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-1-16 09:17:58 | 显示全部楼层
回复【楼主位】wangyan915205:
---------------------------------
求同,我也不是很明白,坐等大神出现
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-1-18 21:50:06 | 显示全部楼层
1,里面有2个数组,1个是UNICODE转GBK码表,另外一个是GBK转UNICODE码表。
2,这个具体的转换我也不太清楚,得百度了,你的解释貌似有道理,呵呵。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

170

主题

917

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1824
金钱
1824
注册时间
2013-4-13
在线时间
63 小时
 楼主| 发表于 2014-1-19 00:19:44 | 显示全部楼层
谢谢
回复 支持 反对

使用道具 举报

头像被屏蔽

38

主题

382

帖子

0

精华

高级会员

Rank: 4

积分
596
金钱
596
注册时间
2012-12-5
在线时间
19 小时
发表于 2014-1-19 18:56:52 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

170

主题

917

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1824
金钱
1824
注册时间
2013-4-13
在线时间
63 小时
 楼主| 发表于 2014-1-19 23:21:17 | 显示全部楼层
tbl_lower ? tbl_upper: chr; 是三目运算符
手艺人要内外兼修。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-1-19 23:40:45 | 显示全部楼层
回复【5楼】toddchen:
---------------------------------
你看错函数了...
WCHAR ff_convert ( /* Converted code, 0 means conversion error */
WCHAR src, /* Character code to be converted */
UINT dir /* 0: Unicode to OEMCP, 1: OEMCP to Unicode */
)
{
WCHAR t[2];
WCHAR c;
u32 i, li, hi;
u16 n;  
u32 gbk2uni_offset=0;   
  
if (src < 0x80)c = src;//ASCII,直接不用转换.
else 
{
  if(dir) //GBK 2 UNICODE
{
gbk2uni_offset=ftinfo.ugbksize/2;  
}else //UNICODE 2 GBK  
{   
gbk2uni_offset=0;
}    
/* Unicode to OEMCP */
hi=ftinfo.ugbksize/2;//对半开.
hi =hi / 4 - 1;
li = 0;
for (n = 16; n; n--)
{
i = li + (hi - li) / 2;
SPI_Flash_Read((u8*)&t,ftinfo.ugbkaddr+i*4+gbk2uni_offset,4);//读出4个字节  
if (src == t[0]) break;
if (src > t[0])li = i;  
else hi = i;    
}
c = n ? t[1]: 0;       
}
return c;
}

这才是mycc936.c的内容
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

头像被屏蔽

38

主题

382

帖子

0

精华

高级会员

Rank: 4

积分
596
金钱
596
注册时间
2012-12-5
在线时间
19 小时
发表于 2014-1-20 00:57:58 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

头像被屏蔽

38

主题

382

帖子

0

精华

高级会员

Rank: 4

积分
596
金钱
596
注册时间
2012-12-5
在线时间
19 小时
发表于 2014-1-20 00:59:22 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-1-20 23:36:31 | 显示全部楼层
回复【8楼】toddchen:
---------------------------------
那段代码,不是用来convert 内码的。
是大小写转换的...
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

头像被屏蔽

38

主题

382

帖子

0

精华

高级会员

Rank: 4

积分
596
金钱
596
注册时间
2012-12-5
在线时间
19 小时
发表于 2014-1-20 23:50:30 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-9 23:59

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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