野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 11773|回复: 4

LCD显示中文有个问题

[复制链接]
发表于 2016-12-24 15:38:26 | 显示全部楼层 |阅读模式
/**
* @brief  在 ILI9341 显示器上显示中文字符串
* @param  usX :在特定扫描方向下字符串的起始X坐标
* @param  usY :在特定扫描方向下字符串的起始Y坐标
* @param  pStr :要显示的英文字符串的首地址
* @param  usColor_Background :选择字符串的背景色
* @param  usColor_Background :选择字符串的前景色
* @retval 无
*/
void ILI9341_DispString_CH ( uint16_t usX, uint16_t usY, const uint8_t * pStr, uint16_t usColor_Background, uint16_t usColor_Foreground )
{       
        uint16_t usCh;
       
       
        while( * pStr != '\0' )
        {               
                if ( ( usX - macILI9341_DispWindow_X_Star + macWIDTH_CH_CHAR ) > macILI9341_DispWindow_COLUMN )
                {
                        usX = macILI9341_DispWindow_X_Star;
                        usY += macHEIGHT_CH_CHAR;
                }
               
                if ( ( usY - macILI9341_DispWindow_Y_Star + macHEIGHT_CH_CHAR ) > macILI9341_DispWindow_PAGE )
                {
                        usX = macILI9341_DispWindow_X_Star;
                        usY = macILI9341_DispWindow_Y_Star;
                }       
               
                usCh = * ( uint16_t * ) pStr;       
                usCh = ( usCh << 8 ) + ( usCh >> 8 );

                ILI9341_DispChar_CH ( usX, usY, usCh, usColor_Background, usColor_Foreground );
               
                usX += macWIDTH_CH_CHAR;
               
                pStr += 2;           //一个汉字两个字节

        }          
       
}


先贴上代码,不懂的已经标注红色了。

usCh 这个国标码是怎么得来的?????
pStr指向的内容是中文,原本是中文的;怎么一下子就得出中文的国标码了

我理解的是:
汉字的机内码>区位码>字模

回复

使用道具 举报

发表于 2016-12-24 17:46:54 | 显示全部楼层
“中文字符串”
这东西在编译器里就直接变成国标码,
就像
“abcdefg”
在编译器里直接就变成ascii码一样

国标码输入到ILI9341_DispChar_CH函数,该函数内部把国标码转成区位码并查找字模

可以看看我们的教程和视频

回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-24 18:28:00 | 显示全部楼层
flyleaf 发表于 2016-12-24 17:46
“中文字符串”
这东西在编译器里就直接变成国标码,
就像

那完全明白了。。。我用的就是你们的开发板~~就是视频没有看过~~~   
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-24 20:27:22 | 显示全部楼层
flyleaf 发表于 2016-12-24 17:46
“中文字符串”
这东西在编译器里就直接变成国标码,
就像

还有个疑问额~~~~~usCh 还要分别左移8位和右移8位 这步操作有什么用?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-27 02:01:27 | 显示全部楼层
chen5903710 发表于 2016-12-24 20:27
还有个疑问额~~~~~usCh 还要分别左移8位和右移8位 这步操作有什么用?

自己百度了一下 是大小端的问题
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-9-28 08:07 , Processed in 0.035354 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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