OpenEdv-开源电子网

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

2.8寸TFT_LCD显示问题

[复制链接]

82

主题

589

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1255
金钱
1255
注册时间
2017-11-18
在线时间
296 小时
发表于 2017-11-27 16:42:21 | 显示全部楼层 |阅读模式
液晶显示文字的时候,如果背景色不是白色的话,在显示字体的区域会有白色的背景,如下图所示,大家知道是什么原因吗? 微信图片_20171127163728.jpg

没有脑袋
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

82

主题

589

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1255
金钱
1255
注册时间
2017-11-18
在线时间
296 小时
 楼主| 发表于 2017-11-27 17:32:22 | 显示全部楼层
login_FAE 发表于 2017-11-27 17:26
这里改成1,设置为叠加方式显示

好的  实验一下,谢谢了!
没有脑袋
回复 支持 1 反对 0

使用道具 举报

21

主题

2205

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5140
金钱
5140
注册时间
2014-8-26
在线时间
1317 小时
发表于 2017-11-27 17:26:34 | 显示全部楼层
这里改成1,设置为叠加方式显示
aaaaaa.JPG
回复 支持 反对

使用道具 举报

3

主题

11

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2020-4-26
在线时间
4 小时
发表于 2020-4-26 09:48:47 | 显示全部楼层
这个ASCII码显示大小的是宽X高=8X16的吗?我写了一个16X32大小的一直显示一半,我一直没有查出问题来,请问有这个DEMO 吗
回复 支持 反对

使用道具 举报

3

主题

11

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2020-4-26
在线时间
4 小时
发表于 2020-4-26 09:51:35 | 显示全部楼层
各位大师,最近在写2.8寸TFT_LCD  240*320RGB液晶屏显示,显示ASCII 大小为宽X高=16x32,我在液晶屏上显示的字符都是一半?ASCII大小宽X高=8x16 显示正常,ASCII大小宽X高=16x32只显示一半(详见附件),是我自己按照显示8x16大小的函数修改的,请大家帮忙给指导一下,谢谢!

此函数是显示 宽X高=8x16 显示正常:
void LCD_ShowChar(unsigned int x,unsigned int y,unsigned char num,unsigned char mode)
{
        unsigned char temp;
        unsigned char pos,t;
        unsigned int x0=x;
        unsigned int colortemp=Point_Color;      
        
        if(x>LCD_W-16||y>LCD_H-16)return;            
        
        /* 设置窗口 */
        num=num-' ';                        /* 得到偏移后的值 */
        Address_set(x,y,x+8-1,y+16-1);        /* 设置光标位置 */
        if(!mode)                        /* 非叠加方式 */
        {
                for(pos=0;pos<16;pos++)
                {
                        temp=asc2_1608[(unsigned int)num*16+pos];        /* 调用1608字体 */
                        for(t=0;t<8;t++)
                        {                 
                                if(temp&0x01)Point_Color=colortemp;
                                else Point_Color=Back_Color;
                                LCD_WR_DATA(Point_Color);        
                                temp>>=1;
                                x++;
                        }
                        x=x0;
                        y++;
                }
        }

此函数是ASCII大小宽X高=16x32只显示一半(详见附件),是我自己按照显示8x16大小的函数修改的:
void LCD_ShowChar_32(unsigned int x,unsigned int y,unsigned char num,unsigned char mode)
{
        unsigned int temp;
        unsigned char pos,t;
        unsigned int x0=x;
        unsigned int colortemp=Point_Color;      
        
        if(x>LCD_W-16||y>LCD_H-32) return;            
        
        /* 设置窗口 */
        num=num-' ';                        /* 得到偏移后的值 */
        Address_set(x,y,x+16-1,y+32-1);        /* 设置光标位置 */
        if(!mode)                        /* 非叠加方式 */
        {
                for(pos=0;pos<64;pos++)
                {
                        temp=ascii_table_16x32[(unsigned int)num*64+pos];        /* 调用 */
                        for(t=0;t<16;t++)
                        {                 
                                if(temp&0x01) Point_Color=colortemp;
                                else Point_Color=Back_Color;
                                LCD_WR_DATA(Point_Color);        
                                temp>>=1;
                                x++;
                        }
                        x=x0;
                        y++;
                }
        }




回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-26 02:35

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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