STM32F407VET6移植emwin5.3(含Touch)(一)——移植emwin主体

2023-10-14 19:20

本文主要是介绍STM32F407VET6移植emwin5.3(含Touch)(一)——移植emwin主体,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

移植顺序为裸机移植TFT的驱动可以正常点亮,接着移植裸机的emwin,最后再将emwin移植到OS。
TFT的裸机驱动网上有很多,确定接线正确,确定驱动程序正确,剩下的就是一些很隐蔽的问题。比如IAR for arm关于int型解释为32位,short是16位。在定义数据地址时遇到了这样的问题。
我们移植的前提是已知驱动程序,emwin中包括的驱动不在我们考虑范围之内

裸机驱动正常后移植裸机emwin。STemwin支持的是5.2的emwin,想要移植最新的5.3版本的emwin。MDK5以上自带emwin的包,是个很方便的事情。所以下载并安装破解MDK for ARM,安装中间件,在中间件的文件夹下面能找到emwin(C:\Keil_v5\ARM\Pack\Keil\MDK-Middleware\6.5.0\emWin)或者是7.0.目录树如下


Doc存放的是说明文档,5.3的最新手册也在里面。
Include里面放的是H文件,复制并粘贴到我们的工程里面。
Lib里面放的是lib文件,不过全是.lib的,所以IAR不能用。选择我们所需的.lib文件复制到我们的工程里面
Tool里面放的是一些小工具。
Sample里面放的就是我们需要移植的文件。

其中红圈的文件是我们需要的文件,将他们复制并粘贴在自己的工程中。GUI_X里面有各种各样的文件,segger已经帮我们做好了各种OS的驱动,比如我们常用的RTX ,embOS, uCOS,直接复制就可以用,修改的很少。这里我们用的是裸机,所以复制的是GUI_X.c。其他文件的作用可以一一查看文件的开头,注释的都非常清楚。
emwin本身支持一款TI的触摸芯片ADS7846,在TouchConf文件夹下。不过我们用的不是这个,所以用到的是GUI_X_Touch_Analog.c。同样,移植Touch的前提是我们已知触摸芯片的驱动程序。
在工程中添加上述文件,添加包含路径。红框内为我们添加的emwin 的程序。注意文件属性为只读,需要修改。

1.将 GUIConf.h中
#define GUI_OS  1    // Compile with multitasking support
1 #define GUI_SUPPORT_MOUSE   1 // Mouse support

改为0

2.将GUIConf.c中

#define GUI_NUMBYTES 0x200000
这个值改小,因为我们的芯片RAM没有这么大。改为50*1024或者更小,够用就行。

3.LCDConf.c
#define XSIZE_PHYS 480
#define YSIZE_PHYS 272
修改为我们需要的,比如修改为
#define XSIZE_PHYS 854
#define YSIZE_PHYS 480
#define COLOR_CONVERSION GUICC_8888 
这个是支持8888的颜色,我们需要的是565,修改为GUICC_565
#define DISPLAY_DRIVER GUIDRV_WIN32
这个是支持PC的模拟,我们需要把它改成
#define DISPLAY_DRIVER &GUIDRV_Template_API,这样他就支持GUIDRV_Template.c的驱动
4.在GUI_X.c最后面添加
void GUI_X_Unlock (void){}
void GUI_X_Lock (void){}
U32 GUI_X_GetTaskId(void){return 0;}
void GUI_X_InitOS (void){}
完成后此时再编译,应该是没有错误的。
5.修改GUIDRV_Template.c
我们至少需要准备两个函数,一个打点函数,一个初始化函数。

红框内添加打点函数

这里添加TFT驱动初始化函数
6.修改GUI_X.c
这个文件主要是用于GUI的心跳,
volatile GUI_TIMER_TIME OS_TimeMS;中GUI_TIMER_TIME这个是enwin的定义,外部引用的话比较麻烦,直接将它修改为unsigned int,即volatile unsigned int OS_TimeMS;然后再在SysTick_Handler中添加函数使emwin跑起来

至此,没有优化的emwin就算移植完成,搞一个简单的demo,跑一下看看效果

这篇关于STM32F407VET6移植emwin5.3(含Touch)(一)——移植emwin主体的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/212610

相关文章

QT移植到RK3568开发板的方法步骤

《QT移植到RK3568开发板的方法步骤》本文主要介绍了QT移植到RK3568开发板的方法步骤,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录前言一、获取SDK1. 安装依赖2. 获取SDK资源包3. SDK工程目录介绍4. 获取补丁包二

FreeRTOS-基本介绍和移植STM32

FreeRTOS-基本介绍和STM32移植 一、裸机开发和操作系统开发介绍二、任务调度和任务状态介绍2.1 任务调度2.1.1 抢占式调度2.1.2 时间片调度 2.2 任务状态 三、FreeRTOS源码和移植STM323.1 FreeRTOS源码3.2 FreeRTOS移植STM323.2.1 代码移植3.2.2 时钟中断配置 一、裸机开发和操作系统开发介绍 裸机:前后台系

RT-Thread(Nano版本)的快速移植(基于NUCLEO-F446RE)

目录 概述 1 RT-Thread 1.1 RT-Thread的版本  1.2 认识Nano版本 2 STM32F446U上移植RT-Thread  2.1 STM32Cube创建工程 2.2 移植RT-Thread 2.2.1 安装RT-Thread Packet  2.2.2 加载RT-Thread 2.2.3 匹配相关接口 2.2.3.1 初次编译代码  2.2.3.

【视频教程】手把手AppWizard轻松制作一个emWin滑动主界面控制框架,任意跳转控制(2024-09-06)

现在的新版AppWizard已经比较好用,用户可以轻松的创建各种项目常规界面。 比如早期创建一个支持滑动的主界面框架,并且可以跳转各种子界面,仅仅界面布局和各种图片格式转换都要花不少时间,而现在使用AppWizard,可以说轻轻松松,毫不费力。 用户唯一要做的就是根据自己的芯片性能做一定的速度优化。 视频: https://www.bilibili.com/video/BV17Rp3eLE

libmad音频解码库-Linux交叉编译移植

下载并解压libmad-0.15.1b.tar.gz 下载链接:https://downloads.sourceforge.net/mad/libmad-0.15.1b.tar.gz $tar -xvf libmad-0.15.1b.tar.gz$cd libmad-0.15.1b 1、先执行下面的命令:这条命令是为了适配高版本的gcc,因为高版本的gcc已经将-fforce-mem去除了:

arm linux lua移植

lua: lua home 1.下载lua源码 lua下载 lua-5.3.4.tar.gz 2.解压: tar xvf lua-5.3.4.tar.gz 3.修改makefile and luaconf.h $修改 lua-5.3.4/Makefile #INSTALL_TOP= /usr/local INSTALL_TOP= $(shell pwd)/out #修改安装目录(当前目录/o

s3c2440---PWM使用之蜂鸣器驱动移植

一、蜂鸣器驱动介绍 1.1.什么是蜂鸣器               蜂鸣器是一种简单的声响发生器,常用于电子产品中作为警示或提醒作用。其基本原理是通过交替改变直流电的电压方向来产生声音,一般使用交替电流产生声音会比较稳定。 1.2.蜂鸣器的类别 1.有源蜂鸣器 1)结构原理 有源蜂鸣器内部自带振荡源,只需接通电源即可发声。内部电路会自动产生一定频率的振荡信号,从而驱动蜂鸣器发声。

JS基础-ClassList -移动端插件的引入-touch事件-sessionStorage 和 localStorage

目录 1.classList属性 添加类 删除类 切换类 检查类是否存在 替换类 移动端touch事件 2.消除点击延迟 Fastclick插件的引入 引入FastClick 初始化 3.Swiper插件的引入和使用 通过CDN引入 通过npm安装(vue中建议)  使用SwiperHTML结构 初始化Swiper 4.zyMedia插件简介 4.1下载与引

【GD32】---- 移植工程模板及点灯测试

1 新建模板文件夹 新建一个名叫03_GD32TemplateProject的文件夹,用于建造工程模板 2 移植官方库文件 在模板文件夹里新建5个文件夹,分别存放官方库文件和系统驱动文件 01_main 存放main函数 02_Startup 存放系统启动文件 03_System 存放官方的系统文件 04_Firmware_PeripheralDriver 存放官方

Geomagic Touch触觉力反馈设备,在虚拟环境中提供真实的反馈力

在虚拟现实(VR)和增强现实(AR)技术日益成熟的今天,为用户提供更加真实、沉浸的交互体验成为了技术发展的重要方向。Geomagic Touch触觉力反馈设备凭借其卓越的性能和广泛的应用领域,成为了这一领域中的佼佼者。本文将探讨Geomagic Touch如何在虚拟环境中提供真实的反馈力,为用户带来前所未有的体验。 卓越的力反馈技术 Geomagic Touch(原Sensable Phant