OpenEdv-开源电子网

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

关于FSMC控制LCD的问题

[复制链接]

3

主题

14

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2018-5-22
在线时间
5 小时
发表于 2019-2-20 23:21:10 | 显示全部楼层 |阅读模式
1金钱




//LCD地址结构体
typedef struct
{
        vu16 LCD_REG;
        vu16 LCD_RAM;
} LCD_TypeDef;
//使用NOR/SRAM的 Bank1.sector4,地址位HADDR[27,26]=11 A10作为数据命令区分线
//注意设置时STM32内部会右移一位对其!      
#defineLCD_BASE        ((u32)(0x6C000000 | 0x000007FE))

#defineLCD             ((LCD_TypeDef *)LCD_BASE)

LCD_BASE,须根据外部电路的连接来确定,如Bank1.sector4就是从地址0X6C000000开
始,而0X000007FE,则是A10的偏移量。以A10为例,7FE换成二进制为:1111111 1110
,而16位数据时,地址右移一位对齐,对应到地址引脚,就是:A10:A0=0111111 1111,
此时A10是0,但是如果16位地址再加1(对应到8位地址是加2,即7FE+0X02),那么:
A10:A0=1000000 0000,此时A10就是1了,即实现了对RS的0和1的控制

LCD_TypeDef结构体地址,那么可以得到LCD->LCD_REG的
地址就是0X6C00,07FE,对应A10的状态为0(即RS=0),而LCD->LCD_RAM的地址就是
0X6C00,0800(结构体地址自增),对应A10的状态为1(即RS=1),从而实现对RS的控制。

(疑问)。。。。。。。。
是不是在把LCD看作有2个地址的SRAM,访问7FE的时候就给LCD写命令,访问800的时候给LCD写数据,那写的命令或者数据在LCD的地址不是不知道了嘛


最佳答案

查看完整内容[请看2#楼]

是的,就是2个地址。至于你说的LCD的RAM地址,是通过指令发送的,并不是硬件直接控制。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2019-2-20 23:21:11 | 显示全部楼层
是的,就是2个地址。至于你说的LCD的RAM地址,是通过指令发送的,并不是硬件直接控制。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-23 13:59

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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