硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1575|回复: 12
收起左侧

[emWin] 今天移植emwin,遇到一些问题。

[复制链接]

100

主题

299

回帖

599

积分

金牌会员

123

积分
599
发表于 2021-11-22 14:12:35 | 显示全部楼层 |阅读模式
LCDConf_FlexColor.c文件和LCDConf_Lin_Template.c这两个文件应该使用哪个呢?这两个文件有什么区别,我看别人移植的emwin用的是LCDConf_FlexColor.c文件,里面就两个函数LCD_X_Config和LCD_X_DisplayDriver?



回复

使用道具 举报

42

主题

1022

回帖

1153

积分

至尊会员

积分
1153
发表于 2021-11-22 14:18:47 | 显示全部楼层
你管它什么文件,他要的就是那几个函数,只要把要的那几个函数移植好,你自己建一个ssssssss.c文件都行。
回复

使用道具 举报

100

主题

299

回帖

599

积分

金牌会员

123

积分
599
 楼主| 发表于 2021-11-22 14:38:31 | 显示全部楼层
ghslfgkkl88 发表于 2021-11-22 14:18
你管它什么文件,他要的就是那几个函数,只要把要的那几个函数移植好,你自己建一个ssssssss.c文件都行。

我知道你的意思,但是我想弄清楚一点。看了三套代码,移植的都有点不一样,想弄清楚作者的意图,有一套代码还用到GUIDRV_Template.C,这个里面是打点,读点,函数。其他两套没用到这个文件,我也没找到打点,读点函数在什么地方。
回复

使用道具 举报

42

主题

1022

回帖

1153

积分

至尊会员

积分
1153
发表于 2021-11-22 15:06:44 | 显示全部楼层
ssssssss 发表于 2021-11-22 14:38
我知道你的意思,但是我想弄清楚一点。看了三套代码,移植的都有点不一样,想弄清楚作者的意图,有一套代 ...

我明白了,你要的答案,这里应该可以得到:http://www.armbbs.cn/forum.php?m ... hlight=%B4%F2%B5%E3
回复

使用道具 举报

3

主题

424

回帖

433

积分

高级会员

积分
433
发表于 2021-11-22 15:11:08 | 显示全部楼层
ssssssss 发表于 2021-11-22 14:38
我知道你的意思,但是我想弄清楚一点。看了三套代码,移植的都有点不一样,想弄清楚作者的意图,有一套代 ...

emwin库里自带了许多驱动的,pdf文档已经列出了清单,而且新版通常会加入更多驱动支持。
比如GUIDRV_Lin.h头文件里定义的驱动都是内存打点驱动,GUIDRV_FlexColor.h里对应许多显示模块驱动。而GUIDRV_Template.c里面就是完全由开发者自定一的驱动,通过它能自己实现一个任意显示屏的驱动,最灵活。
回复

使用道具 举报

354

主题

2167

回帖

3234

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3234
发表于 2021-11-22 15:22:07 | 显示全部楼层
LCDConf_FlexColor.c比较常用,这个是配合彩色屏幕显示用的。至少需要写点和读点函数,需求RAM缓冲比较小。 LCDConf_Lin_Template.c是另一种模式,需要自己建立一个屏幕像素11对应的数据缓冲区,这样子需求的RAM比较大,但是刷新效果好。
回复

使用道具 举报

100

主题

299

回帖

599

积分

金牌会员

123

积分
599
 楼主| 发表于 2021-11-22 15:36:28 | 显示全部楼层
ghslfgkkl88 发表于 2021-11-22 15:06
我明白了,你要的答案,这里应该可以得到:http://www.armbbs.cn/forum.php?mod=viewthread&tid=91452&hi ...

emwin移植的两种方式


https://blog.csdn.net/wangyijieonline/article/details/76795084

https://blog.csdn.net/wangyijieonline/article/details/77141780





回复

使用道具 举报

100

主题

299

回帖

599

积分

金牌会员

123

积分
599
 楼主| 发表于 2021-11-22 15:41:12 | 显示全部楼层
caicaptain2 发表于 2021-11-22 15:22
LCDConf_FlexColor.c比较常用,这个是配合彩色屏幕显示用的。至少需要写点和读点函数,需求RAM缓冲比较小。 ...

总结的挺好,如果没有外部sdram,最好选LCDConf_FlexColor.c    ?
回复

使用道具 举报

100

主题

299

回帖

599

积分

金牌会员

123

积分
599
 楼主| 发表于 2021-11-22 15:45:21 | 显示全部楼层
glory 发表于 2021-11-22 15:11
emwin库里自带了许多驱动的,pdf文档已经列出了清单,而且新版通常会加入更多驱动支持。
比如GUIDRV_Lin ...

理论上来说,移植STemwin应该是有两种方法,第一种是完全不用STemwin的接口,使用我们自己的,这就是上面准备的几个函数的用途,第二种方法是直接填充STemwin的画点等相关函数,当然这两种方法也可以同时移植但是最后用哪种方法是怎么选择呢,答案就是LCDConf_FlexColor_Template.c 中的LCD_X_Config函数中的GUI_DEVICE_CreateAndLink接口。
如果设置为

GUI_DEVICE_CreateAndLink(&GUIDRV_Template_API, GUICC_M565, 0, 0);
1
则使用的是我们自己的接口
如果是

GUI_DEVICE_CreateAndLink(GUIDRV_FLEXCOLOR, GUICC_M565, 0, 0);
1
则使用默认的填充接口。
注意了这个地方有个注意的点,就是GUICC_M565 和 GUICC_565 ,这两兄弟看起来很像,其实他们所表示的颜色是完全反相的。


回复

使用道具 举报

42

主题

1022

回帖

1153

积分

至尊会员

积分
1153
发表于 2021-11-22 15:56:05 | 显示全部楼层
ssssssss 发表于 2021-11-22 15:45
理论上来说,移植STemwin应该是有两种方法,第一种是完全不用STemwin的接口,使用我们自己的,这就是上面 ...

回复

使用道具 举报

100

主题

299

回帖

599

积分

金牌会员

123

积分
599
 楼主| 发表于 2021-11-22 16:00:13 | 显示全部楼层
一、正点
GUI_DEVICE_CreateAndLink(&GUIDRV_Template_API, GUICC_M565, 0, 0);
二、野火
GUI_DEVICE_CreateAndLink(GUIDRV_FLEXCOLOR, GUICC_M565, 0, 0);

三、硬汉哥的设置:
配置模式

GUI_DEVICE_CreateAndLink(DISPLAY_DRIVER_0, COLOR_CONVERSION_0, 0, 0);


/* 7. 配置图层1的颜色模式和分辨率大小 */
#define COLOR_MODE_0      _CM_RGB565
#define XSIZE_0           XSIZE_PHYS
#define YSIZE_0           YSIZE_PHYS

/* 8. 配置图层2的的颜色模式和分辨率大小 */
#define COLOR_MODE_1      _CM_RGB565
#define XSIZE_1           XSIZE_PHYS
#define YSIZE_1           YSIZE_PHYS


/* 9. 单图层情况下,根据用户选择的颜色模式可自动选择图层1的emWin的驱动和颜色模式 */

#elif (COLOR_MODE_0 == _CM_RGB565)
  #define COLOR_CONVERSION_0 GUICC_M565
  #define DISPLAY_DRIVER_0   GUIDRV_LIN_16





回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115834
QQ
发表于 2021-11-22 16:26:22 | 显示全部楼层
GUIDRV_Template_API是通用的移植接口,所有的显示屏都可以使用,不限制任何接口,任何驱动方式。
GUIDRV_FLEXCOLO 主要是SEGGER倒腾一类显示屏接口驱动,主要是ili9xxx,RA8875等显示屏都可以使用。
还有一种常用的是xxxLin驱动,这个是现在RGB接口用的一类驱动。
回复

使用道具 举报

100

主题

299

回帖

599

积分

金牌会员

123

积分
599
 楼主| 发表于 2021-11-22 16:29:03 | 显示全部楼层
eric2013 发表于 2021-11-22 16:26
GUIDRV_Template_API是通用的移植接口,所有的显示屏都可以使用,不显示任何接口,任何驱动方式。
GUIDRV_ ...

完美
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-5-21 18:03 , Processed in 1.665656 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表