STM32 FSMC与lcd的连接

STM32 FSMC与lcd的连接,第1张

可以采用别的驱动方式,如SPI不过刷屏比较慢。这个应该是LCD80用的并口,16条数据线,片选cs,数据命令选择rs,复位rst,写控制wr,读控制rd,其中D0~D15是管脚的复用功能,这个不能边,片选CS必须连接到FSMC的SRAM区的相应的块选管脚(也是管脚复用)上,想用第几区就把CS连到相应的管脚,可以换;数据命令选择rs,复位rst,写控制wr,读控制rd这些都可以自行更改,不过更改后程序要相应的修改,尤其是注意数据命令选择rs的修改。其他脚如BL_PWM,是背光控制,pwm波占空比可以调节屏幕亮度;剩下的一些引脚是与触屏相关的引脚,这些都可以改变。

FSMC是拓展总线,假设拓展基地址是0x6300 0000.

驱动液晶关键的有RD WR CS RS DAT0~7这几引脚。

写命令 WR=0 RD=1 RS=0 CS=0 DAT=数据

写数据 WR=1 RD=0 RS=1 CS=0 DAT=数据

假设RS和FSMC的A0相接,A0对应0x02。那么:

*((int *)0x6300 0000)= 1// WR自动=0 RD自动=1 CS自动=0 DAT=1。因为是0x6300 0000 A0对应输出0,即RS=0。即写命令地址是0x6300 0000

*((int *)0x6300 0002)= 1// WR自动=0 RD自动=1 CS自动=0 DAT=1。因为是0x6300 0002 A0对应输出1,即RS=1。即写命令地址是0x6300 0002

是我的时序有问题还是怎么的呢? p.FSMC_AddressSetupTime = 0x80//地址建立时间 p.FSMC_AddressHoldTime = 0x20//地址保持时间 p.FSMC_DataSetupTime = 0x81//数据建立时间这几个时钟我已经设置的尽可能大了!还是 LCD_RS_L(*(__IO u8 *) (0x6c000000)) = (cmdreg)delay(10)//延时这种方式不行?


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8061246.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-13
下一篇2023-04-13

发表评论

登录后才能评论

评论列表(0条)

    保存