STM32
直播中

王雪

7年用户 968经验值
私信 关注
[问答]

请教大神ili9341芯片的初始化函数该如何去实现呢

请教大神ili9341芯片的初始化函数该如何去实现呢?

回帖(1)

蔡烁坚

2021-11-26 15:50:16

  • 软件下载
    首先去st官网下载好stm32cubemx,我是v5.5.0版的
  • 打开软件选择芯片、开启时钟这些就不细说了。直接上FSMC的配置,每个人的板子不同,请根据自己板子原理图进行配置





    注意看红色方框中的引脚,配置的时候需要对应





    根据原理图对应选择NE4、LCD interface、A6、16bits,再把PC0引脚选择为GPIO_OUTPUT就行了。nor timing的3个参数先不设置,代码生成之后再修改。
  • 在stm32cubemx中将crc打钩,在中间件中选择FREERTOS,将interface选择为CMSIS_V1
  • 在stm32cubemx的project manager中将MDK-ARM选择为V5.27,将Firmware Package Name and Version选择为F4 V1.24.0。
  • 最后点击GENERATE CODE生成代码即可。
  • 用MDK打开生成的工程,在main.c文件中找到MX_FSMC_Init()函数,将timing的参数按如下修改:




  • 我的TFT屏使用的是ili9341芯片,卖开发板的商家会提供驱动代码,找到代码加入到工程文件中去即可。
  • C:UsersAdministratorSTM32CubeRepositorySTM32Cube_FW_F4_V1.24.0MiddlewaresST 这个路径下找到STemWin文件夹,将该文件夹中的config、inc、lib、os文件夹复制到工程文件夹下,比如:





    在board中放入驱动代码和emwin的应用程序,比如





    这里FramewinDLG.c是我用emwin 的builder程序生成的demo代码。
    在工程目录的STemWin文件夹中粘贴刚才说到的几个文件夹,比如:





    lib中只留一个STemWin_CM4_OS_wc16.a文件即可,其他的删除
  • 修改驱动文件
    ili9341.h头文件





    注意好这里就行了,要根据自己板子的实际情况来算,然后检查一下头文件中LCD初始化的名字,我这里是用的原子的驱动,将初始化函数改个名就行,我改成了ILI93XX_LCD_Init。然后在ili9341.c文件中将初始化函数名改成对应的,原子的初始化函数中带有FSMC的配置,因为是使用stm32cubemx来初始化开发版,那么就不需要在ILI93XX_LCD_Init中初始化FSMC了,删掉那些代码即可,这里我把PC0进行了宏定义,LCD_RESET_GPIO_Port其实就是GPIOC,LCD_RESET_Pin就是GPIO_PIN_0,按自己板子实际情况改就行了。然后在ili93xx.c文件中加入stm32f4xx.h头文件




  • 在GUIConf.h文件中将
    #define GUI_OS (1)
    #define GUI_SUPPORT_TOUCH (0)
    #define GUI_SUPPORT_MOUSE (0)
    其他不变
    在GUIConf.c 中将#define GUI_NUMBYTES (50*1024) 这样修改,(50*1024)中的50按自己需求修改即可,记得加括号
  • 将STemWin_CM4_OS_wc16.a设置为库文件,如图:





    包含一下STemWin下的文件路径还有驱动文件board的路径,比如:




  • 我使用的是LCDConf_Flexcolor_Template.c这个文件,方式和使用Lin的不同,需要填充4个读写函数。






这2个宏是定义横竖屏的,根据自己屏的实际尺寸进行调整即可










这4个函数千万不能错。





红色方框的适用于ili9341芯片,其他芯片要看手册进行配置,这里 Config.Orientation =其实有4个宏定义,在GUI.h文件中,分别是GUI_ROTATION_0、GUI_ROTATION_CW、GUI_ROTATION_180、GUI_ROTATION_CCW,也是控制屏幕横竖、倒置显示的。





这里记得加入ili9341芯片的初始化函数,最后在LCDConf_Flexcolor_Template.c文件中加入#include "GUI.h"和#include "ili93xx.h"头文件即可。
13. 修改FramewinDLG.c文件
在文件末尾加入以下代码:



















最后效果就是这样的,GUI已经开始工作了。祝大家移植成功。
如果还有人不会,那就下载我上传的代码吧,链接如下:
举报

更多回帖

发帖
×
20
完善资料,
赚取积分