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

【实战经验】基于FMC8080接口8位LCD的STemWin的移植

[复制链接]
zero99 发布时间:2017-6-2 17:33
基于 FMC8080接口 8位 LCD的 STemWin的移植

1前言
有客户用我们的STM32F429VET6这颗芯片,用FMC接8080的8位的LCD,我们官方提供的例程或者网上的一些资料一般都是16位,客户在移植过程碰到一些问题,本篇主要介绍FMC接8080的8位的LCD的STemWin的移植过程。

2 问题跟进与分析
1)我们先看下8080屏的时序图如下:
1.jpg
2.jpg
上图中分别是8080屏的读写时序图,所以关注的管脚其实就是读写信号,片选信号,以及数据信号,所以对应到MCU的连接如下图:
3.jpg
有上面的基础之后,我们来看下实际的原理图(下面节选一部分跟LCD接口相关的原理图)
4.png
2)打开CubeMx软件,根据图纸需要配置外部时钟和FMC如下图:
5.jpg
至此在CubeMx上配置8080屏的参数结束,我们可以先生成一个工程,然后将下面几个文件拷贝到工程里面
6.png
1、GUI_X.C -> “STemWinLibrary522\OS”
2、 GUIConf.c和LCDConf.c->“STemWin\Src”
3、 STemWin532_CM4_IAR.a -> “STemWin\Lib”
然后将上述文件的路径加到工程中,以上几步完成之后接下来就开始进行部分的程序修改了。
      首先我们点开“GUIConf.C”,会在里面看到这样一个宏:
” #define GUI_NUMBYTES 0x200000”
把“0x200000”改为“1024*50”即可(这个宏定义服务于在函数中向系统申请一个静态空间 aMemory ,接着调用 emWin的库函数GUI_ALLOC_AssignMemory 把该空间分配给 emWin。还有“1024*50”并不是定值,我们也可以改成“1024*40”或其它,视情况而定,但一般建议设置成小于“1024*50”)。然后在“GUIConf.C”中就没有需要修改的了。
接着我们修改LCDConf.c中的驱动文件
7.png
8.jpg
我们需要修改如下的宏,可以根据我们的电路图确定如下宏的定义,首先我们是8位,所以对应的寄存器数据应改成8位,由于LCD片选接的是单片机的NE1,所以其基地址是0x60000000,偏移地址由于是接的A18,所以对应的偏移地址0x0003ffff
9.png

       我们需要修改的是GUIDRV_FLEXCOLOR_F66709这个参数。GUIDRV_FLEXCOLOR_F66709 这个参数的修改要根据你的TFT屏所使用的驱动芯片,如我的TFT使用的驱动芯片是“ILI9341”,那么就改成GUIDRV_FLEXCOLOR_F66709如果是其它型号的驱动芯片则需要查询emWin5.32的用户手册然后进行修改。emWin5.32用户手册。
11.jpg
上面的步骤完成之后我们再往下看会找到这样一个函数int LCD_X_DisplayDriver(unsigned LayerIndex,unsigned Cmd, void * pData)。在这里我们仅需在case LCD_X_INITCONTROLLER: 项中加入我们TFT液晶的初始化函数即可;
12.jpg
以上步骤完成之后,emWin在运行过程中有时会调用延时之类的函数,为了实现精确定时,这里我们选用SysTick。也即需要我们在mian()函数中加入 来初始化SysTick定时器,而在“stm32f4xx_it.c”文件中,我们需要进行这样的修改:
13.jpg
最后可以添加一个简单的hello world来测试如下:
14.jpg


3结论
移植的过程看似比较简单,但是有些关键点也需要注意,首先看下A18(RS信号)写寄存器是0,写数据是1是否正确,也就是基地址是否配置正确,下一步是注意如何link到STemWin了,也就是添加TFT屏的驱动芯片的driver,最后检查下配置的LCD的色深的配置是565还是666等。



基于FMC8080接口8位LCD的STemWin的移植.pdf (612.88 KB, 下载次数: 163)
收藏 2 评论5 发布时间:2017-6-2 17:33

举报

5个回答
zhao.zhao 回答时间:2017-6-3 16:18:48
谢谢楼主
epochal 回答时间:2017-6-15 23:08:23
谢谢分享!!!
weigr 回答时间:2017-6-18 14:28:19
昱枫 回答时间:2019-8-15 17:04:40
代码分享下
playrule 回答时间:2019-9-11 16:47:06
我现在正在用gd32f450做ili9806接口,谢谢楼主的分享

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版