本讲内容:
1.移植emWin所需的配置文件
也是五个步骤
1.emWin系统功能
2.操作系统接口
3.内存管理接口
4.显示驱动接口
5.触摸接口
好了
让我们进入第一步。
和上一讲差不多哈。

stm32 opencv 移植 stm32移植emwin_触摸屏


stm32 opencv 移植 stm32移植emwin_触摸屏_02


stm32 opencv 移植 stm32移植emwin_stm32_03


F429及其以上的 显示驱动都在这个GUIDRV_wf.c中。

stm32 opencv 移植 stm32移植emwin_图层_04


stm32 opencv 移植 stm32移植emwin_图层_05


这里是多缓冲的层数。

比如说,这里如果是1的话,那就是没有多缓冲,就是单帧缓冲。如果是2的话就是双帧缓冲。3就是三帧缓冲。一般我们都是直接用三帧缓冲

stm32 opencv 移植 stm32移植emwin_图层_06


这个是定义虚拟屏幕的数量,一般不去改它,一般就是1 。

stm32 opencv 移植 stm32移植emwin_stm32 opencv 移植_07


如果没有图层激活的状态下显示什么颜色,这里给他设置成了一个偏暗的深蓝色

stm32 opencv 移植 stm32移植emwin_触摸屏_08

emWin是支持几层的显示,在我们这个例程当中他是单层的显示。

在F429上一定要单层数。

stm32 opencv 移植 stm32移植emwin_触摸屏_09


stm32 opencv 移植 stm32移植emwin_stm32_10


这些颜色格式可以是上图中的颜色格式中的一个

stm32 opencv 移植 stm32移植emwin_stm32_11


注意:如果使能了双图层的话。要设置第二图层的颜色和格式。

如果双图层的话

stm32 opencv 移植 stm32移植emwin_图层_12


Layer 0是底层。

Layer 1是第二层。

stm32 opencv 移植 stm32移植emwin_图层_13


所以Layer 1这里要设置成带透明度通道的。

stm32 opencv 移植 stm32移植emwin_图层_14


液晶显示屏的尺寸。

stm32 opencv 移植 stm32移植emwin_stm32_15


之后我们向下翻。找到这个

stm32 opencv 移植 stm32移植emwin_stm32 opencv 移植_16


stm32 opencv 移植 stm32移植emwin_图层_17


stm32 opencv 移植 stm32移植emwin_触摸屏_18


这个函数内部首先判断有没有多帧缓冲

如果使用了多帧缓冲的话,就用一个for循环把每一帧的缓冲去给他初始化完成

stm32 opencv 移植 stm32移植emwin_嵌入式_19


这些东西就是刚才看见的

stm32 opencv 移植 stm32移植emwin_嵌入式_20


这些东西。

stm32 opencv 移植 stm32移植emwin_触摸屏_21


stm32 opencv 移植 stm32移植emwin_stm32 opencv 移植_22


stm32 opencv 移植 stm32移植emwin_stm32_23


下面的都是一些硬件加速的内容了。

如果要移植的话,完全可以全部复制粘贴无需更改上去。

当然,有些地方如果配置那就按需所配置。

stm32 opencv 移植 stm32移植emwin_stm32 opencv 移植_24


stm32 opencv 移植 stm32移植emwin_图层_25


定义了你所使用的LCD显存。

stm32 opencv 移植 stm32移植emwin_嵌入式_26


stm32 opencv 移植 stm32移植emwin_stm32 opencv 移植_27


这里就是LCD显存地址。

我们在这个文件当中通过这个数组来设置。

为什么用数组来给他设置呢,因为考虑到有可能会使用多图层。

如果是多图层就根据后面这个式子直接显示出来。

stm32 opencv 移植 stm32移植emwin_stm32_28


或者你也可以设置一个固定的显存地址。

stm32 opencv 移植 stm32移植emwin_嵌入式_29


屏幕的分辨率

stm32 opencv 移植 stm32移植emwin_触摸屏_30


stm32 opencv 移植 stm32移植emwin_stm32 opencv 移植_31


注意:中断函数写在了GUIDRV_wf.c中。

因为F429用的是电容平,不需要像电阻屏那样校准了。

stm32 opencv 移植 stm32移植emwin_图层_32

stm32 opencv 移植 stm32移植emwin_stm32_33


stm32 opencv 移植 stm32移植emwin_嵌入式_34


这个函数是触摸屏本身的坐标采集函数。

本来是采集五个点,我们把它变成采集1个点,因为我们这个是一个操作系统的平台,所以我们这个采集是在单独的任务里面循环采集的,不是使用中断得方式来采集的,就把原来的触摸屏中断采集形式改成了循环采集的这样一个方式。 采集到这个触摸坐标之后我们需要通过一个判断,是不是触摸的这个坐标。

stm32 opencv 移植 stm32移植emwin_嵌入式_35


stm32 opencv 移植 stm32移植emwin_stm32_36


stm32 opencv 移植 stm32移植emwin_触摸屏_37