STM32 FSMC驱动TFTLCD一小段代码解读

在学习正点原子的STM32的时候看到驱动TFTLCD的代码,对着

	typedef struct
{
	vu16 LCD_REG;
	vu16 LCD_RAM;
} LCD_TypeDef;		    
#define LCD_BASE        ((u32)(0x6C000000 | 0x0000007E))
#define LCD             ((LCD_TypeDef *) LCD_BASE)

看了很久7e那个地方。后来读代码的时候才看见原来7E表示的就是地址口的A1到A6输出1。
但FSMC规定了输出16位时地址会整体右移动1位,因此地址输出的是3F对应A0到A5输出1A6口是0。LCD_RAM的地址自动+2变成80,对应也就是变为40对应A6输出1
由此,实现了FSMC写数据由地址+数据的规则。

画一个颜色块

1.写入0x2A00;再写入0xxxxx(设置X起始坐标高八位)
  写入0x2A01;再写入0xxxxx(设置X起始坐标低八位)
  写入0x2A02;再写入0xxxxx(设置X终点坐标高八位)
  写入0x2A03;再写入0xxxxx(设置X终点坐标低八位)
  
2.写入0x2A00;再写入0xxxxx(设置Y起点坐标高八位)
  写入0x2A01;再写入0xxxxx(设置Y起点坐标低八位)
  写入0x2A02;再写入0xxxxx(设置Y终点坐标高八位)
  写入0x2A03;再写入0xxxxx(设置Y终点坐标低八位)

3.写入0x2C00;(开始写GRAM指令)
4.写入0xxxxx;(16位用于编辑颜色,写一次画一点需要写满n次(x长度*Y长度)可填满12步骤围起来的框)

画一个颜色点

1.写入0x2A00;再写入0xxxxx(设置X起始坐标高八位)
  写入0x2A01;再写入0xxxxx(设置X起始坐标低八位)
  
2.写入0x2A00;再写入0xxxxx(设置Y起点坐标高八位)
  写入0x2A01;再写入0xxxxx(设置Y起点坐标低八位)

3.写入0x2C00;(开始写GRAM指令)
4.写入0xxxxx;(16位用于编辑颜色,画一点)
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于驱动 TFT LCD 的 FSMC(Flexible Static Memory Controller)在 STM32F407 上的使用,你可以按照以下步骤进行操作: 1. 配置 FSMC 控制器:首先,你需要配置 FSMC 控制器以与 TFT LCD 进行通信。这涉及到配置控制线、地址线和数据线等。你可以参考 STM32F407 参考手册中的 FSMC 章节,了解如何正确配置 FSMC 控制器。 2. 配置 TFT LCD 控制器:根据 TFT LCD 的规格书或者供应商提供的资料,你需要了解 TFT LCD 的时序要求和控制信号定义。然后,根据这些信息配置 FSMC 控制器的时序参数,以确保与 TFT LCD 的正确通信。 3. 编写驱动代码:在配置完 FSMC 控制器和 TFT LCD 控制器后,你需要编写驱动代码来实现绘制图形、显示文本等功能。这通常涉及到像素点的读写、区域填充、字体显示等操作。你可以使用 C 语言或者汇编语言来编写这些代码。 4. 调试和优化:一旦你完成了驱动代码的编写,你需要通过调试和优化来确保驱动的正确性和性能。你可以使用逻辑分析仪或者示波器来观察信号波形,以确保与 TFT LCD 的通信正常。 需要注意的是,TFT LCD 的驱动方式和接口可能因不同的型号而有所不同,因此在开始驱动之前,最好详细阅读 TFT LCD 的规格书,并参考 STM32F407 参考手册中的相关章节进行配置。此外,也可以参考一些开源项目或者社区提供的代码和资料,以便更好地理解和实现 TFT LCD 的驱动

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值