打印

看了论坛有人写的16X16直接显示汉字的程序,请问32X32的怎么改?

[复制链接]
263|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
无幻|  楼主 | 2019-11-23 15:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/* 显示一个汉字
* 大小为 16(宽度)* 16(高度),共32个字节
* 取模顺序为:高位在前,低位在后
*/
void LCD_DispCH(uint16_t x, uint16_t y, const uint8_t buffer[], uint16_t color)
{
        uint8_t page , column;
        //uint8_t buffer[32];               
        uint16_t tmp_char=0;
        
        LCD_open_windows(x, y, CH_WIDTH, CH_HEIGHT);
        
        //GetGBKCode_from_sd(buffer,pstr);         /* 取字模数据 */
        
        for(page=0; page< CH_HEIGHT; page++)
        {
                tmp_char=buffer[page*2];
                tmp_char=(tmp_char<<8);
                tmp_char|=buffer[2*page+1];
               
                for (column=0; column< CH_WIDTH; column++)
                {                        
                        if ( tmp_char & (0x01<<15) )
                        {                                
                                LCD_WR_Data(color);
                        }
                        else
                        {                        
                                LCD_WR_Data(WHITE);
                        }
                        tmp_char <<= 1;
                }
        }
}

我把长宽都定义成32了,字节也是128了,然后
                tmp_char=buffer[page*4];    //原来是2
                tmp_char=(tmp_char<<8);
                tmp_char|=buffer[4*page+1];  //原来是2

可以写进去只显示一半。

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

431

主题

436

帖子

0

粉丝