硬汉嵌入式论坛

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

[emWin] emWin5.26使用内部驱动RA8875

[复制链接]

334

主题

2032

回帖

3039

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3039
发表于 2015-1-4 21:36:57 | 显示全部楼层 |阅读模式
经过研究,已经可以正常使用emwin5.26的flexcolor内部的RA8875驱动程序了。最关键的一句话是:GUIDRV_FlexColor_SetFunc(pDevice, &amportAPI, GUIDRV_FLEXCOLOR_F66721, GUIDRV_FLEXCOLOR_M16C0B16);
大家可以删除辛苦写的自有驱动GUIDRV_Template.c了。


实现方法:
1. 保证你目前的程序是使用emwin5.xx,且能够正常运行的。比如安富莱的例程。
2. 使用eric2013提供的5.26的lib文件,替换老的lib文件。把5.26中的include目录下的文件替换老的.h文件。
3.使用附件中LCDConf, LCD_X_8080_16,的文件替换老的文件。为了方便大家了解,这几个是5.26中的原始文件通过简单注释来修改的。 GUI_X.c中主要是添加几个空函数的实现,因为5.26的lib文件需要这几个函数。 Config.zip (9 KB, 下载次数: 707)
4. 修改bsp.c中的extern __IO uint8_t s_ucRA8875BusyNow; 为//__IO uint8_t s_ucRA8875BusyNow; 删除GUIDRV_Template.c文件。
应该就可以编译了。。。。然后就运行吧!


如有不详,请回帖!
回复

使用道具 举报

334

主题

2032

回帖

3039

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3039
 楼主| 发表于 2015-1-4 21:40:09 | 显示全部楼层
修改后的文件目录
ScreenHunter_86 Jan. 04 21.39.jpg

可能大家的板子和我不一样,几个关键的宏定义:
  /* 定义LCD驱动器的访问地址 */
    #define RA8875_BASE        ((uint32_t)(0x6c000000))  //根据你的设计而定。
    #define RA8875_REG        (*(__IO uint16_t*)(RA8875_BASE + 2))
    #define RA8875_RAM        (*(__IO uint16_t*)(RA8875_BASE))
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106676
QQ
发表于 2015-1-4 21:40:47 | 显示全部楼层
感谢楼主分享,置酷。
回复

使用道具 举报

0

主题

5

回帖

5

积分

新手上路

积分
5
发表于 2015-1-4 22:51:04 | 显示全部楼层
置顶[s:152] [s:152] [s:152]
回复

使用道具 举报

33

主题

203

回帖

302

积分

高级会员

积分
302
发表于 2015-1-5 09:28:32 | 显示全部楼层
不知道驱动的效果怎么样?触摸呢?一起支持了?
回复

使用道具 举报

36

主题

2039

回帖

2147

积分

至尊会员

积分
2147
发表于 2015-1-5 10:26:42 | 显示全部楼层
感谢楼主分享 [s:151]  [s:151]
Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better.
回复

使用道具 举报

334

主题

2032

回帖

3039

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3039
 楼主| 发表于 2015-1-5 10:31:36 | 显示全部楼层

回 waterx3 的帖子

waterx3:不知道驱动的效果怎么样?触摸呢?一起支持了? (2015-01-05 09:28)
由于电阻屏的触摸感受太差了,我的板子一直没有开发触摸部分,所以没有涉及到。。。5.26的手册也没有提到这个部分。但是5.26的sample目录中有ads7846的代码。

如果是RA8875内部的触摸功能,我估计得用自己的代码。因为触摸的实现函数都是要自己写的。。。
回复

使用道具 举报

33

主题

203

回帖

302

积分

高级会员

积分
302
发表于 2015-1-5 11:50:59 | 显示全部楼层

回 caicaptain2 的帖子

caicaptain2:由于电阻屏的触摸感受太差了,我的板子一直没有开发触摸部分,所以没有涉及到。。。5.26的手册也没有提到这个部分。但是5.26的sample目录中有ads7846的代码。

如果是RA8875内部的触摸功能,我估计得用自己的代码。因为触摸的实现函数都是要自己写的。。。
 (2015-01-05 10:31) 
跑个分看看,5.26的驱动效果怎么样?
回复

使用道具 举报

11

主题

59

回帖

11

积分

初级会员

积分
11
发表于 2015-1-6 13:04:42 | 显示全部楼层
5.26的库在哪里下载的
回复

使用道具 举报

334

主题

2032

回帖

3039

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3039
 楼主| 发表于 2015-1-6 13:28:01 | 显示全部楼层

回 magusss 的帖子

magusss:5.26的库在哪里下载的 (2015-01-06 13:04) 
http://www.armbbs.cn/forum.php?mod=viewthread&tid=5709
回复

使用道具 举报

23

主题

1403

回帖

1472

积分

至尊会员

积分
1472
发表于 2015-1-11 17:21:22 | 显示全部楼层
下载下来试试[s:151]
代码不规范,亲人两行泪!
回复

使用道具 举报

12

主题

134

回帖

170

积分

初级会员

积分
170
发表于 2015-1-13 12:47:28 | 显示全部楼层
我以前SSD1963的时候用过内置驱动,现在都不知道怎么搞了。效果如何?
回复

使用道具 举报

5

主题

26

回帖

15

积分

新手上路

积分
15
发表于 2015-1-20 08:51:15 | 显示全部楼层
已经按楼主的方法进行修改并测试,绘图速度与修改之前完全相同,均为1549万像素/秒,只不过有一个小小的问题:在运行树型列表Demo时,鲸鱼游过之后屏幕会留下印迹,但如果是用通用的驱动模板就一切正常,不知道其他朋友是否会这样。
回复

使用道具 举报

334

主题

2032

回帖

3039

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3039
 楼主| 发表于 2015-2-12 15:55:03 | 显示全部楼层

回 yl19823442 的帖子

yl19823442:已经按楼主的方法进行修改并测试,绘图速度与修改之前完全相同,均为1549万像素/秒,只不过有一个小小的问题:在运行树型列表Demo时,鲸鱼游过之后屏幕会留下印迹,但如果是用通用的驱动模板就一切正常,不知道其他朋友是否会这样。 (2015-01-20 08:51) 
我用以前的自写驱动,偶尔会有点问题。比如光标闪烁,乱点等。换emwin的驱动后就没有问题了。

游标功能未使用,不知道如何。
回复

使用道具 举报

100

主题

275

回帖

575

积分

金牌会员

积分
575
发表于 2015-5-23 11:04:15 | 显示全部楼层
测试过了,可以的
回复

使用道具 举报

12

主题

33

回帖

69

积分

初级会员

进阶stm32,那之后呢。。。。。

积分
69
发表于 2015-5-29 19:41:35 | 显示全部楼层

回 caicaptain2 的帖子

caicaptain2:修改后的文件目录


可能大家的板子和我不一样,几个关键的宏定义:
  /* 定义LCD驱动器的访问地址 */
....... (2015-01-04 21:40) 
今天移植emWin5.26,但在GUI_INIT();函数就马上进入硬件错误,不知楼主当时移植时候有没有遇到同等情况??要不麻烦发移植好的工程到我邮箱:1019158750@qq.com,谢谢了
回复

使用道具 举报

12

主题

33

回帖

69

积分

初级会员

进阶stm32,那之后呢。。。。。

积分
69
发表于 2015-5-30 11:10:15 | 显示全部楼层

回 haohao801 的帖子

haohao801:今天移植emWin5.26,但在GUI_INIT();函数就马上进入硬件错误,不知楼主当时移植时候有没有遇到同等情况??要不麻烦发移植好的工程到我邮箱:1019158750@qq.com,谢谢了 (2015-05-29 19:41)
已解决,是读写液晶是fsmc高低电平问题
今天(2015.08.18)在这说明一下:
fsmc高低电平问题:是这我当时在用emWin驱动时候的地址线跟数据线使用反了,造成读写寄存器和数据也是反了。
更正了上面这个问题后,如果还是直接进入hardfault,可以测试的解决方法如下:
把emWin接口函数全部实现了,RA8875不像ili9325,ili9341之类的仅需4个接口函数,RA8875必须用到其中6个接口函数
(具体哪6个就忘了,所以最好全部实现)。
QQ图片20150818095155.jpg
另外一个需要注意的就是:RA8875用于emWin需要设置为绘图模式,在文字模式上使用不正常,
还有就是在RA8875液晶初始化函数最后要加上设置显示窗口大小那个函数
回复

使用道具 举报

10

主题

51

回帖

10

积分

初级会员

积分
10
发表于 2016-3-7 10:31:13 | 显示全部楼层

回 caicaptain2 的帖子

caicaptain2:我用以前的自写驱动,偶尔会有点问题。比如光标闪烁,乱点等。换emwin的驱动后就没有问题了。

游标功能未使用,不知道如何。 (2015-02-12 15:55) 
能提供一下移植后的emwin文件吗,谢谢!
回复

使用道具 举报

10

主题

51

回帖

10

积分

初级会员

积分
10
发表于 2016-3-8 21:42:38 | 显示全部楼层
移植的时候发现存储空间不够:
*** Using Compiler 'V5.05 update 2 (build 169)', folder: 'C:\\Keil_v5\\ARM\\ARMCC\\Bin'
Build target 'GPS-Display'
linking...
.\\Objects\\NV-GPS-K.axf: Error: L6406E: No space in execution regions with .ANY selector matching guiconf.o(.bss).
.\\Objects\\NV-GPS-K.axf: Error: L6406E: No space in execution regions with .ANY selector matching startup_stm32f10x_hd.o(STACK).
.\\Objects\\NV-GPS-K.axf: Error: L6406E: No space in execution regions with .ANY selector matching gui_alloc.o(.bss).
.\\Objects\\NV-GPS-K.axf: Error: L6406E: No space in execution regions with .ANY selector matching gui_core.o(.bss).
.\\Objects\\NV-GPS-K.axf: Error: L6406E: No space in execution regions with .ANY selector matching gui_onkey.o(.bss).
.\\Objects\\NV-GPS-K.axf: Error: L6406E: No space in execution regions with .ANY selector matching wm.o(.data).
.\\Objects\\NV-GPS-K.axf: Error: L6406E: No space in execution regions with .ANY selector matching gui_core.o(.data).
.\\Objects\\NV-GPS-K.axf: Error: L6406E: No space in execution regions with .ANY selector matching gui__alpha.o(.data).
.\\Objects\\NV-GPS-K.axf: Error: L6406E: No space in execution regions with .ANY selector matching wm_touch.o(.data).
.\\Objects\\NV-GPS-K.axf: Error: L6406E: No space in execution regions with .ANY selector matching gui_task.o(.data).
.\\Objects\\NV-GPS-K.axf: Error: L6406E: No space in execution regions with .ANY selector matching wm.o(.bss).
.\\Objects\\NV-GPS-K.axf: Error: L6406E: No space in execution regions with .ANY selector matching lcd_ra8875.o(.data).
.\\Objects\\NV-GPS-K.axf: Error: L6406E: No space in execution regions with .ANY selector matching system_stm32f10x.o(.data).
.\\Objects\\NV-GPS-K.axf: Error: L6406E: No space in execution regions with .ANY selector matching lcd_color.o(.data).
.\\Objects\\NV-GPS-K.axf: Error: L6406E: No space in execution regions with .ANY selector matching gui_onkey.o(.data).
.\\Objects\\NV-GPS-K.axf: Error: L6406E: No space in execution regions with .ANY selector matching gui_waitevent.o(.data).
.\\Objects\\NV-GPS-K.axf: Error: L6406E: No space in execution regions with .ANY selector matching gui_alloc.o(.data).
.\\Objects\\NV-GPS-K.axf: Error: L6406E: No space in execution regions with .ANY selector matching all_test.o(.data).
.\\Objects\\NV-GPS-K.axf: Error: L6406E: No space in execution regions with .ANY selector matching gui_x.o(.data).
.\\Objects\\NV-GPS-K.axf: Error: L6406E: No space in execution regions with .ANY selector matching gui_core.o(.data).
.\\Objects\\NV-GPS-K.axf: Error: L6406E: No space in execution regions with .ANY selector matching gui_core.o(.data).
.\\Objects\\NV-GPS-K.axf: Error: L6406E: No space in execution regions with .ANY selector matching lcd.o(.data).
.\\Objects\\NV-GPS-K.axf: Error: L6406E: No space in execution regions with .ANY selector matching wm__sendmessage.o(.data).
.\\Objects\\NV-GPS-K.axf: Error: L6406E: No space in execution regions with .ANY selector matching gui_core.o(.data).
.\\Objects\\NV-GPS-K.axf: Error: L6406E: No space in execution regions with .ANY selector matching gui_core.o(.data).
.\\Objects\\NV-GPS-K.axf: Error: L6407E: Sections of aggregate size 0x2006fc bytes could not fit into .ANY selector(s).
Not enough information to list image symbols.
Not enough information to list the image map.
Finished: 2 information, 0 warning and 26 error messages.
".\\Objects\\NV-GPS-K.axf" - 26 Error(s), 0 Warning(s).
Target not created.
Build Time Elapsed:  00:00:00
回复

使用道具 举报

334

主题

2032

回帖

3039

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3039
 楼主| 发表于 2016-3-8 21:46:54 | 显示全部楼层

回 cingcing 的帖子

cingcing:移植的时候发现存储空间不够:
*** Using Compiler 'V5.05 update 2 (build 169)', folder: 'C:\\Keil_v5\\ARM\\ARMCC\\Bin'
Build target 'GPS-Display'
linking...
.\\Objects\\NV-GPS-K.axf: Error: L6406E: No space in execution regions with .ANY select .. (2016-03-08 21:42) 
你这个错误和移植emwin没有关系。可能是你的芯片设定有问题,提示说的是ROM不够。
回复

使用道具 举报

10

主题

51

回帖

10

积分

初级会员

积分
10
发表于 2016-3-9 14:23:26 | 显示全部楼层

回 caicaptain2 的帖子

caicaptain2:你这个错误和移植emwin没有关系。可能是你的芯片设定有问题,提示说的是ROM不够。 (2016-03-08 21:46) 
原因找到了,原因是我申请了太大的emwin内存
回复

使用道具 举报

0

主题

19

回帖

0

积分

新手上路

积分
0
QQ
发表于 2016-10-15 17:08:15 | 显示全部楼层
[s:141] [s:141] [s:141] [s:141] [s:141] [s:141] [s:141] [s:141] [s:141]
回复

使用道具 举报

3

主题

15

回帖

3

积分

新手上路

积分
3
发表于 2017-7-26 11:05:53 | 显示全部楼层
弱弱的问下
RA8875   有64Kse  256se       8bit数据线     16bit数据线
内置驱动是那种
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106676
QQ
发表于 2017-7-26 11:19:08 | 显示全部楼层

回 tanic 的帖子

tanic:弱弱的问下
RA8875   有64Kse  256se       8bit数据线     16bit数据线
内置驱动是那种 (2017-07-26 11:05) 
这里的意思是emWin自带的驱动方式
回复

使用道具 举报

3

主题

15

回帖

3

积分

新手上路

积分
3
发表于 2017-7-26 15:00:43 | 显示全部楼层
我想用内置驱动
板子是407,FSMC驱动   但是只拉了8根数据线,色值还是选择565模式  64K色
GUIDRV_FlexColor_SetFunc(pDevice, &amportAPI, GUIDRV_FLEXCOLOR_F66721, GUIDRV_FlexColor_SetMode16bppC0B8); //16bpp, no cache, 16 bit bus
似乎是这个参数 GUIDRV_FlexColor_SetMode16bppC0B8
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106676
QQ
发表于 2017-7-26 15:02:35 | 显示全部楼层

回 tanic 的帖子

tanic:我想用内置驱动
板子是407,FSMC驱动   但是只拉了8根数据线,色值还是选择565模式  64K色
GUIDRV_FlexColor_SetFunc(pDevice, &amportAPI, GUIDRV_FLEXCOLOR_F66721, GUIDRV_FlexColor_SetMode16bppC0B8); //16bpp, no cache, 16 bit bus
似乎是这个参数 G .. (2017-07-26 15:00) 
多试试,我基本不用内置驱动,只有F429用的是内置的,其它都是通用驱动方式实现。
回复

使用道具 举报

3

主题

15

回帖

3

积分

新手上路

积分
3
发表于 2017-7-26 15:05:59 | 显示全部楼层
在 RA8875_InitHard() 中有好多初始化RA8875的步骤,应该不是全部都需要的吧
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106676
QQ
发表于 2017-7-26 15:07:14 | 显示全部楼层

回 tanic 的帖子

tanic:在 RA8875_InitHard() 中有好多初始化RA8875的步骤,应该不是全部都需要的吧
(2017-07-26 15:05)
硬件驱动,该初始的都得初始化了,先把你说的8bit方式,裸机代码调试通了,再移植emWin。
回复

使用道具 举报

14

主题

11

回帖

53

积分

初级会员

积分
53
发表于 2020-6-23 11:47:34 | 显示全部楼层
haohao801 发表于 2015-5-30 11:10
已解决,是读写液晶是fsmc高低电平问题
今天(2015.08.18)在这说明一下:
fsmc高低电平问题:是这我当时 ...

感谢,看了您的回复,解决了问题
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-29 08:27 , Processed in 0.457055 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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