硬汉嵌入式论坛

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

[emWin] stemwin中调用EDIT_EnableBlink使EDIT控件闪烁时出现问题

[复制链接]

1

主题

6

回帖

9

积分

新手上路

积分
9
发表于 2017-3-27 13:57:57 | 显示全部楼层 |阅读模式
SS1963驱动的640x480彩屏,控制器STM32F103ZET6,在对编辑控件中调用EDIT_EnableBlink(hItem, 1000, TRUE)后,光标开始闪烁,但当前字符消失且出现彩色方块,这是怎么回事?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115728
QQ
发表于 2017-3-27 15:43:32 | 显示全部楼层
读像素部分是不是有问题,你可以先测试下把emWin的游标箭头显示出来,看看是否有残影。
回复

使用道具 举报

1

主题

6

回帖

9

积分

新手上路

积分
9
 楼主| 发表于 2017-3-28 08:42:34 | 显示全部楼层
游标显示很正常,每种游标都试过了,没有问题。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115728
QQ
发表于 2017-3-28 08:52:11 | 显示全部楼层
关于这个,我们曾经遇到过光标不闪烁的问题,是由于底层驱动不完善所致:http://www.armbbs.cn/forum.php?mod=viewthread&tid=10160

你的这个问题,极有可能也是底层驱动的问题。
回复

使用道具 举报

1

主题

6

回帖

9

积分

新手上路

积分
9
 楼主| 发表于 2017-3-28 10:11:25 | 显示全部楼层
我改了GUIDRV_Template.c文件,也加入了IAR项目,但stemwin根本不调用这个函数,应该怎么设置呢?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115728
QQ
发表于 2017-3-29 09:35:23 | 显示全部楼层

回 hzstqm 的帖子

hzstqm:我改了GUIDRV_Template.c文件,也加入了IAR项目,但stemwin根本不调用这个函数,应该怎么设置呢? (2017-03-28 10:11) 
估计你的工程不是用的通用移植方法,我们的都是采用的通用移植方法,不是emWin自带的那种驱动方法。
回复

使用道具 举报

1

主题

6

回帖

9

积分

新手上路

积分
9
 楼主| 发表于 2017-3-30 18:23:34 | 显示全部楼层

回 eric2013 的帖子

eric2013:估计你的工程不是用的通用移植方法,我们的都是采用的通用移植方法,不是emWin自带的那种驱动方法。 (2017-03-29 09:35) 
可能是的,我是直接在st官方下载的1.2.0版,再加入项目中的,多谢你的帮助!
回复

使用道具 举报

1

主题

6

回帖

9

积分

新手上路

积分
9
 楼主| 发表于 2017-4-13 09:11:58 | 显示全部楼层
问题终于找到了,关键在于要设置读指令的模式,emwin里默认的是GUIDRV_FLEXCOLOR_READ_FUNC_I,难怪总是不正常。

修改如下,已可以正常工作。
GUIDRV_FlexColor_SetReadFunc66720_B16(pDevice, GUIDRV_FLEXCOLOR_READ_FUNC_II);
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115728
QQ
发表于 2017-4-13 10:21:41 | 显示全部楼层

回 hzstqm 的帖子

hzstqm:问题终于找到了,关键在于要设置读指令的模式,emwin里默认的是GUIDRV_FLEXCOLOR_READ_FUNC_I,难怪总是不正常。

修改如下,已可以正常工作。
GUIDRV_FlexColor_SetReadFunc66720_B16(pDevice, GUIDRV_FLEXCOLOR_READ_FUNC_II); (2017-04-13 09:11) 
谢谢告知解决办法。

这么看来还是通用的移植方法使用起来比较方便。
回复

使用道具 举报

1

主题

6

回帖

9

积分

新手上路

积分
9
 楼主| 发表于 2017-4-13 10:52:18 | 显示全部楼层
我试过在通用的emwin项目中,调用GUI_DEVICE_CreateAndLink(&GUIDRV_Template_API, GUICC_M565, 0, 0);就可以使用外部的GUIDRV_Template.c里的驱动程序,也优化了显示驱动,界面显示和光标闪烁都很正常,但和emwin自带的驱动相比,我发现当焦点在同一个窗口中的不同按钮移动时,外置驱动时会把整个窗口擦除再重画,而内置驱动好像只擦除了部分区域。结果是外置驱动的焦点移动时,显示会有明显的刷屏的感觉,而内置驱动的焦点移动时却没有这种问题。请教一下,这是什么原因引起的呢?是不是哪里还要做一些设置。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115728
QQ
发表于 2017-4-13 10:57:55 | 显示全部楼层

回 hzstqm 的帖子

hzstqm:我试过在通用的emwin项目中,调用GUI_DEVICE_CreateAndLink(&GUIDRV_Template_API, GUICC_M565, 0, 0);就可以使用外部的GUIDRV_Template.c里的驱动程序,也优化了显示驱动,界面显示和光标闪烁都很正常,但和emwin自带的驱动相比,我发现当焦点在同一个窗口中的不同按钮移动时 .. (2017-04-13 10:52) 
没遇到过这种问题,我们F407板子是一直用的通用驱动。
回复

使用道具 举报

1

主题

6

回帖

9

积分

新手上路

积分
9
 楼主| 发表于 2017-4-13 11:10:49 | 显示全部楼层
RA8875有自动清内存的指令,所以即使全屏擦除时间也不长,可能感觉不出来。我用的SS1963驱动的640x480彩屏,清屏时间比较长,写数据指令要执行640*480次,所以感觉特别明显。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-15 01:38 , Processed in 0.286738 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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