OpenEdv-开源电子网

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

TFT_LCD SPI接口320*240的stm32f407的程序分享

[复制链接]

1

主题

1

帖子

0

精华

新手入门

积分
25
金钱
25
注册时间
2015-7-3
在线时间
0 小时
发表于 2016-6-2 19:58:34 | 显示全部楼层 |阅读模式
之前自己苦恼从51的程序改,总是不成功,就在论坛里找了好久,结果也没找到,后来自己发现了问题所在(数据写入的移位方向问题)程序弄好了,所以分享在这里。希望能够帮到大家!

stm32F407_TFT_LCD_串口.rar

8.28 MB, 下载次数: 4103

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

使用道具 举报

1

主题

12

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
205
金钱
205
注册时间
2018-3-20
在线时间
42 小时
发表于 2018-12-7 17:22:02 | 显示全部楼层
这是多大尺寸的屏,我的屏怎么调都无反应
回复 支持 反对

使用道具 举报

13

主题

633

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1331
金钱
1331
注册时间
2016-8-1
在线时间
229 小时
发表于 2018-12-7 17:30:47 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

0

主题

50

帖子

0

精华

高级会员

Rank: 4

积分
710
金钱
710
注册时间
2019-3-5
在线时间
168 小时
发表于 2019-6-6 19:27:46 | 显示全部楼层
感謝分享!收下學習!!
回复 支持 反对

使用道具 举报

3

主题

11

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2020-4-26
在线时间
4 小时
发表于 2020-4-26 15:34:54 | 显示全部楼层
求助一下各位大师,最近在写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++;
                }
        }

回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
5
金钱
5
注册时间
2020-5-11
在线时间
0 小时
发表于 2020-5-11 13:29:07 | 显示全部楼层
IO口模拟的SPI,速度应该不高
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-2 00:15

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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