OpenEdv-开源电子网

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

谁能帮我看下TFTLCD实验中lcd.h文件中的一段代码

[复制链接]

22

主题

62

帖子

0

精华

初级会员

Rank: 2

积分
187
金钱
187
注册时间
2014-7-20
在线时间
0 小时
发表于 2015-1-19 17:59:51 | 显示全部楼层 |阅读模式
5金钱
1.我不理解0x000007FE是怎么得来的
2.最后一行注释好像没写完似的,没看明白那个感叹号

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

最佳答案

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

因为这里是用FSMC的地址线的A10作为rs控制,而因为是用的16位形式,因此地址要左移一位,这样A10就是第十二位了,且最后一位恒为0,这样0X7FE就是011111111110,使得第十二位也就是A10为0,rs为低电平。然后结构体的下一个地址自动增加为0X8000,使得第十二位也就是A10为1,rs为高电平。
软件、硬件我都要
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

20

主题

89

帖子

2

精华

高级会员

Rank: 4

积分
576
金钱
576
注册时间
2014-8-3
在线时间
18 小时
发表于 2015-1-19 17:59:52 | 显示全部楼层
因为这里是用FSMC的地址线的A10作为rs控制,而因为是用的16位形式,因此地址要左移一位,这样A10就是第十二位了,且最后一位恒为0,这样0X7FE就是011111111110,使得第十二位也就是A10为0,rs为低电平。然后结构体的下一个地址自动增加为0X8000,使得第十二位也就是A10为1,rs为高电平。
回复

使用道具 举报

22

主题

62

帖子

0

精华

初级会员

Rank: 2

积分
187
金钱
187
注册时间
2014-7-20
在线时间
0 小时
 楼主| 发表于 2015-1-21 17:23:27 | 显示全部楼层
回复【2楼】Edwardwei:
---------------------------------
然后结构体的下一个地址自动增加为0X8000,使得第十二位也就是A10为1,rs为高电平。

这一句是什么意思啊,我不太理解,还有0x7FE是不是只要保证第12位是0,其他位都是随意的?
软件、硬件我都要
回复

使用道具 举报

20

主题

89

帖子

2

精华

高级会员

Rank: 4

积分
576
金钱
576
注册时间
2014-8-3
在线时间
18 小时
发表于 2015-1-21 18:28:33 | 显示全部楼层
回复【3楼】志聪电子:
---------------------------------
结构体第一个是u16 LCD_REG,其地址是0x7FE,占用2个字节的,所以结构体下一个u16 LCD_RAM的地址就是0X800了。
没错,只需要保证第二位的值就行了,其他位的值不用理会。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-10-15 10:00

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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