OpenEdv-开源电子网

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

求助:钻进牛角尖了,FSMC读取到是怎么读的?

[复制链接]

9

主题

29

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
235
金钱
235
注册时间
2013-11-24
在线时间
0 小时
发表于 2013-12-18 14:40:28 | 显示全部楼层 |阅读模式
今天在看TFT驱动,看到从TFT读写数据函数的时候,钻进牛角尖了
//写
void LCD_WR_DATA(u16 data)
{                       
LCD->LCD_RAM=data;     
}
//读
u16 LCD_RD_DATA(void)
{                       
return LCD->LCD_RAM;     


FSMC读写数据的时候,是这样的吗?
写的时候, data被写到FSMC数据线D0-15,然后到TFT。
读的时候,data被锁存到D0-15,然后呢?D0-D15的数据直接被读到了吗?这里钻进去了。

第二个问题:

TFT采用16位数据线,那么在这里为什么是8位数据呢?是因为9341的特殊性吗?我没有看9341的datasheet.
void LCD_SetCursor(u16 Xpos, u16 Ypos)
{
if(lcddev.id==0X9341)
LCD_WR_REG(lcddev.setxcmd); 
LCD_WR_DATA(Xpos>>8); 
LCD_WR_DATA(Xpos&0XFF);
LCD_WR_REG(lcddev.setycmd); 
LCD_WR_DATA(Ypos>>8); 
LCD_WR_DATA(Ypos&0XFF);
}

if(lcddev.id==0||lcddev.id==0XFFFF)//读到 ID 不正确  ⑤
{
//尝试 9341 的 ID 读取
LCD_WR_REG(0XD3);   
LCD_RD_DATA();          //dummy read 
LCD_RD_DATA();            //读到 0X00
lcddev.id=LCD_RD_DATA();        //读取 93           
lcddev.id<<=8;
lcddev.id|=LCD_RD_DATA();       //读取 41         
}










正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165538
金钱
165538
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-12-18 14:46:11 | 显示全部楼层
回复【楼主位】youngjean:
---------------------------------
1,可以去看《STM32参考手册》FSMC章节的说明。
2,9341就是这么设计的。你应该看看数据手册。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-15 16:06

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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