OpenEdv-开源电子网

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

TFTLCD那里讲的FSMC不太明白

[复制链接]

5

主题

43

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
202
金钱
202
注册时间
2016-1-23
在线时间
31 小时
发表于 2016-1-23 23:39:11 | 显示全部楼层 |阅读模式
1金钱
FSMC控制LCD的大概原理是清楚了  使用A10位去作为RD位分辨是命令还是数据也是清楚的  但是就是不清楚怎么做到的直接写数据就直接设置了A10位

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

使用道具 举报

5

主题

43

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
202
金钱
202
注册时间
2016-1-23
在线时间
31 小时
 楼主| 发表于 2016-1-23 23:43:34 | 显示全部楼层
教程里边写的
LCD->LCD_REG地址是0X6C00,07FE对应A10状态0   
LCD->LCD_REG地址是0X6C00,0800对应A10状态1
这个是什么意思?

我的理解0X6C00,07FE就是A10寄存器的地址  类似于AVR的位操作,设置它是1A10就是1 设置0 A10就是0  但是看起来代码不是这个意思

应该怎么理解呢?
回复

使用道具 举报

10

主题

65

帖子

0

精华

新手入门

积分
5
金钱
5
注册时间
2016-1-9
在线时间
30 小时
发表于 2016-1-23 23:46:59 | 显示全部楼层
PPT上有的可以仔细看一下。
回复

使用道具 举报

5

主题

43

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
202
金钱
202
注册时间
2016-1-23
在线时间
31 小时
 楼主| 发表于 2016-1-23 23:48:52 | 显示全部楼层
中国救星 发表于 2016-1-23 23:46
PPT上有的可以仔细看一下。

感谢回复   我是新来的 您说的ppt是哪个? 方便告知一下地址码?
回复

使用道具 举报

10

主题

65

帖子

0

精华

新手入门

积分
5
金钱
5
注册时间
2016-1-9
在线时间
30 小时
发表于 2016-1-23 23:53:30 | 显示全部楼层
nngogogo 发表于 2016-1-23 23:48
感谢回复   我是新来的 您说的ppt是哪个? 方便告知一下地址码?

就是教学视屏同一个文件下附带的PPT呀? 你找找。
回复

使用道具 举报

5

主题

43

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
202
金钱
202
注册时间
2016-1-23
在线时间
31 小时
 楼主| 发表于 2016-1-24 00:06:35 | 显示全部楼层
中国救星 发表于 2016-1-23 23:53
就是教学视屏同一个文件下附带的PPT呀? 你找找。

下了ppt了 和教材上是一样的 没有多什么啊  还是没有明白。。。
回复

使用道具 举报

10

主题

65

帖子

0

精华

新手入门

积分
5
金钱
5
注册时间
2016-1-9
在线时间
30 小时
发表于 2016-1-24 00:08:58 | 显示全部楼层
nngogogo 发表于 2016-1-24 00:06
下了ppt了 和教材上是一样的 没有多什么啊  还是没有明白。。。

@原子哥
回复

使用道具 举报

5

主题

43

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
202
金钱
202
注册时间
2016-1-23
在线时间
31 小时
 楼主| 发表于 2016-1-24 00:20:56 | 显示全部楼层
回复

使用道具 举报

5

主题

43

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
202
金钱
202
注册时间
2016-1-23
在线时间
31 小时
 楼主| 发表于 2016-1-24 00:26:51 | 显示全部楼层
可能我对FSMC还不太了解

又想了想 0X6C00,07FE 或 0X6C00,0800对应的是不是就是各个FSMC总线特定状态时的寄存器
比如0X6C00,07F0 或 07F1 或 07F2 等等 都对应A10为0(其他不关心)  0800 或 0801 0802 或ff00 等等都是A10位1即可 只要是往A10需要的那个状态对应的寄存器写数据 STM32就自动的把FSMC配置成对应的状态
回复

使用道具 举报

5

主题

43

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
202
金钱
202
注册时间
2016-1-23
在线时间
31 小时
 楼主| 发表于 2016-1-24 00:44:47 | 显示全部楼层
另外为什么往LCD写数据的时候 有时候8位有时候16位  比如x,y位置的时候 还要吧16位转成两个8位去写?
回复

使用道具 举报

3

主题

2178

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3323
金钱
3323
注册时间
2013-7-19
在线时间
195 小时
发表于 2016-1-24 10:15:20 | 显示全部楼层
1. FSMC是一个存储器接口,只要你设置好了相关地址,那么FSMC会自动完成读写时序,这个是硬件层面的,不需要人为干预。
2. 根据需要FSMC可以配置成8位和16位,另外有的屏幕即使是并口屏,也只能一次传输8位数据。
3. 你应该好好看看屏幕主控的datasheet,里面设置XY坐标的指令格式是怎样的
回复

使用道具 举报

6

主题

1097

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3571
金钱
3571
注册时间
2014-12-2
在线时间
365 小时
发表于 2016-1-24 10:30:25 来自手机 | 显示全部楼层
看看FSMC的读写时序(在STM32的参考手册或数据手册中),然后再对照着看LCD主控的数据手册时序部分。,,,,既然楼主选择学习这些底层代码,必须得看这些东西,
回复

使用道具 举报

69

主题

978

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3772
金钱
3772
注册时间
2015-4-26
在线时间
765 小时
发表于 2016-1-25 10:46:06 | 显示全部楼层
nngogogo 发表于 2016-1-23 23:43
教程里边写的
LCD->LCD_REG地址是0X6C00,07FE对应A10状态0   
LCD->LCD_REG地址是0X6C00,0800对应A10状 ...

fsmc有20几个(具体的看手册,忘了)地址脚,16个数据脚,往0x6c0007fe写数据就对应A10脚输出0,往0x6c000800写数据就对应A10脚输出1
我有故事,你有酒吗
回复

使用道具 举报

69

主题

978

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3772
金钱
3772
注册时间
2015-4-26
在线时间
765 小时
发表于 2016-1-25 10:47:18 | 显示全部楼层
来俩不甜的 发表于 2016-1-25 10:46
fsmc有20几个(具体的看手册,忘了)地址脚,16个数据脚,往0x6c0007fe写数据就对应A10脚输出0,往0x6c00 ...

这些都是并口输出的
我有故事,你有酒吗
回复

使用道具 举报

5

主题

43

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
202
金钱
202
注册时间
2016-1-23
在线时间
31 小时
 楼主| 发表于 2016-1-25 11:56:07 | 显示全部楼层
来俩不甜的 发表于 2016-1-25 10:46
fsmc有20几个(具体的看手册,忘了)地址脚,16个数据脚,往0x6c0007fe写数据就对应A10脚输出0,往0x6c00 ...

恩 谢谢您 我大概明白了
回复

使用道具 举报

4

主题

17

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1056
金钱
1056
注册时间
2016-1-5
在线时间
146 小时
发表于 2016-1-28 11:33:19 | 显示全部楼层
楼主你忽略了16位数据时,HADDR[25:0]是会右移一位对齐的
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-21 07:15

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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