你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【MCU实战经验】STM32F103ZET6通过FSMC控制ILI9481  

[复制链接]
hgqlyl 发布时间:2014-4-19 18:27
    笔者在学习51单片机的时候就玩过彩屏,但是一直都是使用IO模拟的方式驱动的。之后在学习STM32时看见正点原子的战舰开发板的TFT是用FSMC驱动,刷屏速度有了很大的提升,我也模仿着用STM32驱动ILI9481,一直不成功,当时有一点我一直搞不懂,就是为什么在TFT->TFT_REG写就是命令,而在TFT->TFT_RAM写就是数据,我查找了很多资料才发现原因:首先TFT和OLED一样是有一个显示ram区的,只是比后者的大很。而FSMC是通过驱动SRAM的方法来驱动LCD的。(SRAM有地址线,TFT没有地址线)这两者有什么不同呢?让我们往下看:
* h4 X) K! o9 l5 q- U" @首先SRAM是有地址线的,在使用过程中FSMC_A[0:25]会用到,但LCD只是仿SRAM的。它没有地址线。) [7 d: L6 c; d1 F# I, u  Z' x
对于1M的SRAM,内部寻址需要20跟地址线,2^20=1M,当你写内部一个地址时,数据就从数据线传入,读的时候就从数据线传出。(通过数据线传输数据、地址线确定读写的地址)

2 k: E9 c5 U3 i2 v- J, Q. t1 N' Q4 Z+ {2 t5 H% R+ I2 T
而TFT实际上是公用数据线来传送地址和数据的。在看TFT硬件接口时我们可以看到,TFT仅仅有一根接了地址线A24,例程用这根线接RS的,现在不论你写任何地址,都会从数据线发送数据到LCD。但这个数据可能是命令,也可能是真正的数据。这是由RS来控制的,即A24控制的。若A24为0,则输入的是命令,若A24为1,则输入的是数据。我们是用FSMC输入地址来控制输入命令还是数据的,而输入的真正地址,是利用输入的命令决定的。
3 i, k$ v0 p# Z  i, W8 F. ]- L- F

: F9 h# H: [. j/ w  M- d下面我们介绍0x6000 0000和0x1fffffe怎么来的:
! C8 ]: O  H4 z0x6000 0000是FSMC bank1 块1的地址起点,0x1fffffe由如下方法得到:如果我们要输入命令,我们得保证A24为0.这样我们的地址线用二进制表示可以为
. A5 v! }# j5 [; @% t7 d' m3 _    **** **0* **** **** **** ****7 k+ O, m/ x0 J
而输入数据时地址线的输入用二进制表示:
9 X' u8 T3 a& T( U5 K/ T; M    **** **1* **** **** **** ****. Z" g$ v' C# f4 B
我们可以看到实际上我们可以使用很多地址来代表输入的是命令还是数据,例程利用0x1fffffe和0x2000000的原因很简单:$ g- s* v+ G* C1 R  u

! s7 z, F8 M  d2 }( I' J0 Z8 e<span style="font-size: large;"><span style="background-color: rgb(204, 255, 204);"><span style="color: rgb(255, 0, 0);"><span style="font-family: 黑体;"><span lang="EN-US">0x1fffffe = 0001 1111 1111 1110b = ((2^24)
+ t! H' b6 s; J. t5 @, O% Q

ILI9481_FSMC V0.0.rar

下载

166.97 KB, 下载次数: 456

收藏 3 评论31 发布时间:2014-4-19 18:27

举报

31个回答
caidance 回答时间:2019-1-14 12:06:15
我有一块ILI9481屏,For Arduino Mega2560,不知道有没有FSMC接口.
工科小生 回答时间:2015-1-23 15:02:25
楼主能否告知,这个例程的引脚连线图啊
wangweili1978 回答时间:2015-1-24 15:19:44
2.png
hgqlyl 回答时间:2014-4-19 18:35:52

RE:【MCU实战经验】STM32F103ZET6通过FSMC控制ILI9481

自己先顶一下,别沉了!我还希望能够中奖呢!
yang-2041728 回答时间:2014-4-19 19:07:57

回复:【MCU实战经验】STM32F103ZET6通过FSMC控制ILI9481

 写的挺详细嘛,不错,顶
浅沫 回答时间:2014-4-19 21:31:41

回复:【MCU实战经验】STM32F103ZET6通过FSMC控制ILI9481

顶 
浅沫 回答时间:2014-4-19 21:33:13

回复:【MCU实战经验】STM32F103ZET6通过FSMC控制ILI9481

顶 
此名已占用 回答时间:2014-4-21 08:51:14

RE:【MCU实战经验】STM32F103ZET6通过FSMC控制ILI9481

好啊,支持你楼主
hgqlyl 回答时间:2014-4-24 22:02:59

RE:【MCU实战经验】STM32F103ZET6通过FSMC控制ILI9481

,都沉了
木棉 回答时间:2014-4-30 16:29:45

RE:【MCU实战经验】STM32F103ZET6通过FSMC控制ILI9481

顶了
桂电小手 回答时间:2014-5-12 20:43:04

RE:【MCU实战经验】STM32F103ZET6通过FSMC控制ILI9481

谢谢分享,我用模拟IO的方式读点一直有问题,其他正常,不知道你有建议没
wenyangzeng 回答时间:2014-5-13 21:27:21

RE:【MCU实战经验】STM32F103ZET6通过FSMC控制ILI9481

楼主写得确实透彻,顶一下!
0刀客0 回答时间:2014-5-16 10:22:16

RE:【MCU实战经验】STM32F103ZET6通过FSMC控制ILI9481

不错,很好用,不过我的横向显示好像有问题
工科小生 回答时间:2015-1-23 14:17:01
感谢楼主
子曰小玖 回答时间:2015-1-23 14:57:26
好帖必须顶
123下一页
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版