LCD显示字符问题

2019-10-16 03:19发布

/**
* @brief  在 ILI9341 显示器上显示一个英文字符
* @param  usX :在特定扫描方向下字符的起始X坐标
* @param  usY :在特定扫描方向下该点的起始Y坐标
* @param  cChar :要显示的英文字符
* @param  usColor_Background :选择英文字符的背景 {MOD}
* @param  usColor_Background :选择英文字符的前景 {MOD}
* @retval 无
*/
void ILI9341_DispChar_EN ( uint16_t usX, uint16_t usY, const char cChar, uint16_t usColor_Background, uint16_t usColor_Foreground )
{
        uint8_t ucTemp, ucRelativePositon, ucPage, ucColumn;

       
        ucRelativePositon = cChar - ' ';
       
        ILI9341_OpenWindow ( usX, usY, macWIDTH_EN_CHAR, macHEIGHT_EN_CHAR );
       
        ILI9341_Write_Cmd ( macCMD_SetPixel );       
       
        for ( ucPage = 0; ucPage < macHEIGHT_EN_CHAR; ucPage ++ )
        {
                ucTemp = ucAscii_1608 [ ucRelativePositon ] [ ucPage ];
               
                for ( ucColumn = 0; ucColumn < macWIDTH_EN_CHAR; ucColumn ++ )
                {
                        if ( ucTemp & 0x01 )
                                ILI9341_Write_Data ( usColor_Foreground );
                       
                        else
                                ILI9341_Write_Data ( usColor_Background );                                                               
                       
                        ucTemp >>= 1;               
                       
                }/* 写完一行 */
               
        }/* 全部写完 */
       
}



________________________________________________

有语句不理解的我已经标注为红 {MOD}了,特别是这一句

ucRelativePositon = cChar - ' ';


nChar 是英文字符
nChar - ‘ ’ 是什么意思????


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
天空淡云
1楼-- · 2019-10-16 05:39
就是去掉空格前面的ACSII码,因为ACSII空格前的都是控制字符
chen5903710
2楼-- · 2019-10-16 09:59
百度了下,说是减去偏移量
shark_32
3楼-- · 2019-10-16 12:16
 精彩回答 2  元偷偷看……
2449164582
4楼-- · 2019-10-16 13:30
楼上正解
chen5903710
5楼-- · 2019-10-16 17:02
#ifndef __FONT_H
#define __FONT_H           


/*
* 常用ASCII表,偏移量32,大小:16(高度)* 8 (宽度)
*/
const unsigned char ucAscii_1608 [ 95 ] [ 16 ] = {       //@Fixedsys,阴码点阵格式,逐行逆向取摸
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*" ",0*/
{0x00,0x00,0x00,0x18,0x3C,0x3C,0x3C,0x18,0x18,0x00,0x18,0x18,0x00,0x00,0x00,0x00},/*"!",1*/
{0x00,0x00,0x00,0x66,0x66,0x66,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*""",2*/

额~~第一个确实是空格  有点思路了 自己在看看
chen5903710
6楼-- · 2019-10-16 21:08
chen5903710 发表于 2016-12-9 12:33
#ifndef __FONT_H
#define __FONT_H           

nChar - ‘ ’   空格就是32  偏移量  

一周热门 更多>