OpenEdv-开源电子网

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

用HX8357D驱动TFTLCD,无法正常字符显示

[复制链接]

1

主题

4

帖子

0

精华

新手入门

积分
14
金钱
14
注册时间
2017-2-14
在线时间
5 小时
发表于 2017-2-16 15:27:57 | 显示全部楼层 |阅读模式
8金钱
最近在用HX8357D这款芯片控制TFTLCD显示,主控是STM32F103Z。程序是在原子哥程序的基础上进行了修改。一开始屏幕只是循环纯色刷屏,不显示字符。LCD_ShowChar函数并没有发现bug,直到将其中使用的LCD_Fast_DrawPoint()函数内部做了一下修改,在原来仅有起始坐标的情况下又写入了终点坐标。很神奇,字符成功显示了,但是刷屏就不正常了,只是在字符“2017/2/15”右下角的7*15的方框中循环刷屏,无法实现整个屏幕刷屏,如图所示。求助论坛各位大神,帮忙看看问题所在,我为这烦了好多天也没找到解决办法。。。(这个原版程序是符合9341芯片的,我查数据手册发现8357D与9341的几个命令字都是一样的,附上两个数据手册,以供查阅)[mw_shl_code=c,true]void LCD_ShowChar(u16 x,u16 y,u8 num,u8 size,u8 mode)
{                                                            
u8 temp,t1,t;
                u16 y0=y;
                u8 csize=(size/8+((size%8)?1:0))*(size/2);
                num=num-' ';
                for(t=0;t<csize;t++)
                {          
                        if(size==12)temp=asc2_1206[num][t];
                        else if(size==16)temp=asc2_1608[num][t];
                        else if(size==24)temp=asc2_2412[num][t];
                        else return;

                        for(t1=0;t1<8;t1++)
                        {                            
                                if((temp&0x80)==0x80)
                                {
                                        LCD_Fast_DrawPoint(x,y,POINT_COLOR);
                                }
                                else if(mode==0)
                                {
                                        LCD_Fast_DrawPoint(x,y,BLUE);
                               
                                }

                                temp<<=1;
                                y++;
                                if(y>=lcddev.height)return;
                                if((y-y0)==size)
                                {
                                        y=y0;
                                        x++;
                                        if(x>=lcddev.width)return;
                                        break;
                                }
                        }           
                }                                            
}   [/mw_shl_code]

[mw_shl_code=c,true]void LCD_Fast_DrawPoint(u16 x,u16 y,u16 color)
{          

                 
                LCD_WR_REG(lcddev.setxcmd);
                LCD_WR_DATA(x>>8);
                LCD_WR_DATA(x&0XFF);
                LCD_WR_DATA((x+7)>>8);
                LCD_WR_DATA((x+7)&0XFF);  
                LCD_WR_REG(lcddev.setycmd);
                LCD_WR_DATA(y>>8);
                LCD_WR_DATA(y&0XFF);
                LCD_WR_DATA((y+15)>>8);
                LCD_WR_DATA((y+15)&0XFF);
                LCD->LCD_REG=lcddev.wramcmd;
                LCD->LCD_RAM=color;


}         [/mw_shl_code]
P70216-152053.jpg HX8357D数据手册.pdf (6.01 MB, 下载次数: 384)

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

使用道具 举报

0

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
111
金钱
111
注册时间
2017-6-11
在线时间
13 小时
发表于 2018-1-3 17:09:02 | 显示全部楼层
好安静啊,我有个HX8357还没成功点亮呢。愁人  楼主 您的问题解决了么?
回复

使用道具 举报

2

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
69
金钱
69
注册时间
2018-7-6
在线时间
15 小时
发表于 2024-5-24 10:58:15 | 显示全部楼层
开始写入GRAM的方式和命令不同,我也是找到这里来了。我用的是模拟SPI的方式,我只显示文本。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-22 18:46

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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