5189|2

83

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

STM32关于FSMC连接LCD 例程:MCU怎么确定片外LCD控制器的寄存器地址? [复制链接]

Keil4自带的demo: STM32F103VE用FSMC驱动LCD AM-240320L8TNQW00H(ILI9320),MCU的A0连LCD的RS,在lcd.c里有:
typedef struct
{
  __IO uint16_t LCD_REG;
  __IO uint16_t LCD_RAM;
} LCD_TypeDef;

#define LCD_BASE    ((uint32_t)(0x60000000 | 0x0C000000))
#define LCD         ((LCD_TypeDef *) LCD_BASE)

第一个define好理解:LCD连接的是FSMC_Bank1_NOR/SRAM4,映射到FSMC的memory为0x6C00 0000 - 0x6FFF FFFF,共64MByte。
但第二个define该怎么理解呢,为什么LCD_REG(寄存器序号)地址为0x6C00 0000、LCD_RAM(该寄存器的值)地址为0x6C00 0001?

对于写寄存器,代码里有:
#define R1             0x01
LCD_WriteReg(R1, 0x0100);
uint16_t LCD_ReadReg(uint8_t LCD_Reg)
{
  LCD->LCD_REG = LCD_Reg;
  return (LCD->LCD_RAM);
}
MCU和LCD的通讯,从ILI9320 DS里的时序图可知是:先CS=0,RS=0,WR=0写IR,然后使CS=0,RS=1,WR=0再写index是IR值的寄存器(RS=1时不时写RAM么?不懂),而对于上面的LCD_WriteReg()语句,就是先往地址为0x6C00 0000的地方写0x01、再往地址为0x6C00 0001的地方写0x0100,中间也没有CS/RS/WR的设置,LCD_REG怎么就成了IR寄存器呢、LCD_RAM怎么就成了IR索引的那个寄存器呢?

请高手指教。
此帖出自stm32/stm8论坛

最新回复

我来回答,我也有这个stm32的LCD例程。#define LCD ((LCD_TypeDef *) LCD_BASE)   意思是将 LCD定义为 结构体指针 代表这这个结构体。 “而对于上面的LCD_WriteReg()语句,就是先往地址为0x6C00 0000的地方写0x01、再往地址为0x6C00 0001的地方写0x0100,中间也没有CS/RS/WR的设置,LCD_REG怎么就成了IR寄存器呢、LCD_RAM怎么就成了IR索引的那个寄存器呢?  ” 首先,你看原理图,CS WR RD信号分别接FSMC_NE4,FSMC_NWE,FSMC_NOE 这几个信号是在你使用FSMC去读写某个外设的时候自动配置的。所以,你软件不用控制它。还有一个RS,是接在A0的,就是FSMC的最低位地址A0。当程序访问结构体的LCD_REG时,A0=1 RS=1。当程序访问LCD_RAM时 A0=0,RS=0。 楼主,好好结合硬件连接,来研究他们吧,,,   详情 回复 发表于 2010-5-26 23:09
点赞 关注
 

回复
举报

78

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
这么久都没人关注,还真没发结贴,自己顶一下。
此帖出自stm32/stm8论坛
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
我来回答,我也有这个stm32的LCD例程。#define LCD ((LCD_TypeDef *) LCD_BASE)  
意思是将 LCD定义为 结构体指针 代表这这个结构体。

“而对于上面的LCD_WriteReg()语句,就是先往地址为0x6C00 0000的地方写0x01、再往地址为0x6C00 0001的地方写0x0100,中间也没有CS/RS/WR的设置,LCD_REG怎么就成了IR寄存器呢、LCD_RAM怎么就成了IR索引的那个寄存器呢?  ”

首先,你看原理图,CS WR RD信号分别接FSMC_NE4,FSMC_NWE,FSMC_NOE
这几个信号是在你使用FSMC去读写某个外设的时候自动配置的。所以,你软件不用控制它。还有一个RS,是接在A0的,就是FSMC的最低位地址A0。当程序访问结构体的LCD_REG时,A0=1 RS=1。当程序访问LCD_RAM时 A0=0,RS=0。

楼主,好好结合硬件连接,来研究他们吧,,,
此帖出自stm32/stm8论坛
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表