OpenEdv-开源电子网

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

请教一个问题,关于fsmc 驱动LCD

[复制链接]

8

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
89
金钱
89
注册时间
2011-9-16
在线时间
4 小时
发表于 2011-11-6 13:29:57 | 显示全部楼层 |阅读模式


//使用NOR/SRAM的 BANK 4,地址位HADDR[27,26]=11 A10作为数据命令区分线
//注意设置时STM32内部会右移一位对其! 111110=0X3E      
#define LCD_BASE        ((u32)(0x60000000 | 0x0C0007FE))
#define LCD             ((LCD_TypeDef *) LCD_BASE)

为什么LCD_BASE 地址是7FE 而不能取800呢?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2011-11-6 14:38:39 | 显示全部楼层
因为RS需要有0,1来区分数据和命令。
800,是做不了的。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

8

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
89
金钱
89
注册时间
2011-9-16
在线时间
4 小时
 楼主| 发表于 2011-11-6 15:57:07 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
谢谢, 理解了
在这个结构中
typedef struct
{
u16 LCD_REG;
u16 LCD_RAM;
} LCD_TypeDef;

LCD_REG 地址是(0x600007FE)
LCD_RAM 地址是(0x60000800)

因为只连接了HADDR[27,26]和A10 ,
写LCD_REG  时 A10为0
写LCD_RAM 时 A10 为1
--------------------------------------------------------

还有一个问题
//读寄存器
u16 LCD_ReadReg(u8 LCD_Reg)
{    
LCD->LCD_REG = LCD_Reg;//写入要读的寄存器序号
delay_us(5);   
return (LCD->LCD_RAM);//返回读到的值
}   

下面这句读出lcd 的id
DeviceCode = LCD_ReadReg(0x0000);

为什么我这读出的是28,而不是9328呢?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2011-11-6 17:44:57 | 显示全部楼层
回复【3楼】le062:
---------------------------------
 说明你代码有误.或者硬件有问题.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-24 10:12

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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