搜索
bottom↓
回复: 21

ucgui清屏求教

[复制链接]

出0入0汤圆

发表于 2012-7-25 08:24:26 | 显示全部楼层 |阅读模式
移植ucgui在tft液晶中的某处显示字符和数字,第一次显示完之后,第二次在同样的地方显示新的内容
发现第一次的内容没有清掉,和第二次显示的内容叠加在一起;
采用了一下方法,没有解决:
在第一次显示完之后,然后再同样的地方显示空格,想达到清除第一次显示的内容,然后再同样的地方显示新的内容
结果发现写空格并没有清掉第一次显示的内容,新的内容还是和第一次显示的内容叠在了一起
请问各位高手,这个问题给怎么解决?如何实现在同一个地方显示不同的内容,前后不会相互影响,
即如何实现液晶的局部清屏?

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

 楼主| 发表于 2012-7-25 09:03:38 | 显示全部楼层
高手出来指点吧

出0入8汤圆

发表于 2012-7-25 09:33:29 | 显示全部楼层
就是局部清屏啊,不过效率很低的说。。。

出0入0汤圆

 楼主| 发表于 2012-7-25 14:23:57 | 显示全部楼层
局部清屏怎么实现,说说思路吧
ucgui中有什么函数直接实现吗?

出0入0汤圆

发表于 2012-7-25 19:26:30 | 显示全部楼层
没有专门的清屏的函数。如果你的内存大的话,开辟一块缓冲区,做双缓冲,或者不害怕闪屏的话,在两帧之间插入一个填充帧。

出0入0汤圆

 楼主| 发表于 2012-7-26 08:25:17 | 显示全部楼层
有没有可供参考的代码?

出0入0汤圆

 楼主| 发表于 2012-7-26 10:18:42 | 显示全部楼层
a_2012_m 发表于 2012-7-26 08:25
有没有可供参考的代码?

我再描述一下我遇到的情况
我首先在坐标 YR_X0, YR_Y0处显示2012  执行 GUI_DispStringAt("2012", YR_X0, YR_Y0);
执行这个语句之后再液晶的 YR_X0, YR_Y0处显示的是2012,
然后我在坐标 YR_X0, YR_Y0处想显示1234,执行 GUI_DispStringAt("1234", YR_X0, YR_Y0);
执行这个语句之后再液晶的 YR_X0, YR_Y0处显示的是2012和1234叠加在一起的结果,1234并没有完全覆盖2012,如何解释?

之后我采取了如下方法,但是问题还是没有解决
我首先在坐标 YR_X0, YR_Y0处显示2012  执行 GUI_DispStringAt("2012", YR_X0, YR_Y0);
执行这个语句之后再液晶的 YR_X0, YR_Y0处显示的是2012,
然后我在坐标 YR_X0, YR_Y0处想显示空格,执行 GUI_DispStringAt("    ", YR_X0, YR_Y0);
试图覆盖掉2012,但是没有作用,液晶上显示的还是2012,如何解释?

如何实现后一次的显示内容完整的覆盖掉前一次显示的内容?求教!!


   

出0入0汤圆

 楼主| 发表于 2012-7-26 14:44:35 | 显示全部楼层
自顶一下

出0入0汤圆

发表于 2012-7-26 14:49:54 | 显示全部楼层
一、使用局部清除指令
GUI_SetBkColor(cWndDisClo_Bk);//设置背景色
GUI_ClearRect(cWndRgt_luX, cWndRgt_luY,cWndRgt_rdX,cWndRgt_rdY);//利用背景色清除指定区域
二、以使用局部填色指令
GUI_SetColor(cWndDisClo_Bk);//设置前景色
GUI_DrawRect(cWndRgt_luX, cWndRgt_luY,cWndRgt_rdX,cWndRgt_rdY);//利用前景色填充指定区域

出0入0汤圆

 楼主| 发表于 2012-7-27 13:18:37 | 显示全部楼层
试了一下上面的方法,更新屏幕局部内容的时候,会有闪烁的情况,有没有更好的办法?

出0入0汤圆

 楼主| 发表于 2012-7-31 11:46:12 | 显示全部楼层
TFT白菜 发表于 2012-7-27 17:06
楼主,联系我可以帮忙解决此问题,Q 369122197

已经加你qq了,可是你一直也没加我
能直接在论坛回复帖子指导一下吗!

出0入0汤圆

 楼主| 发表于 2012-7-31 15:20:05 | 显示全部楼层
TFT白菜 发表于 2012-7-31 13:56
要沟通具体屏资料的.

屏的驱动ic是R61509V,240*400的屏

出0入0汤圆

 楼主| 发表于 2012-8-1 08:13:34 | 显示全部楼层
TFT白菜 发表于 2012-7-31 19:04
主要是3寸或3.2寸屏驱动IC

整了一半天,还是没有解决问题
能给点实质性的建议吗?

出0入0汤圆

发表于 2012-8-2 12:32:06 | 显示全部楼层
用背景色将原来的内容写一遍,再用前景色写新内容。另外注意不需要刷屏时就不要重写。

出0入0汤圆

 楼主| 发表于 2012-8-2 15:18:31 | 显示全部楼层
jxm0336 发表于 2012-8-2 12:32
用背景色将原来的内容写一遍,再用前景色写新内容。另外注意不需要刷屏时就不要重写。 ...

这种方式会出现闪烁的现象
例如:我要实时显示水平仪的数据,你这种方式就不太可行

出0入0汤圆

发表于 2012-8-5 10:55:34 | 显示全部楼层
用GUI_DispStringAtCEOL   (const char GUI_UNI_PTR *s, int x, int y);这个函数可以实现清除掉之前的文字

出0入0汤圆

发表于 2012-8-6 17:18:56 | 显示全部楼层
正要学习。

出0入0汤圆

发表于 2012-9-2 19:23:24 | 显示全部楼层
GUI_DispCEOL();//从设定地址开始清除本行

用这个也行,但是会闪屏,求大神解释啊

出0入0汤圆

发表于 2012-9-3 07:32:53 来自手机 | 显示全部楼层
设置下画图模式!gui_settextmode,

出0入0汤圆

发表于 2012-9-3 07:34:00 来自手机 | 显示全部楼层
把透明模式改为正常模式!

出0入0汤圆

发表于 2012-9-3 07:47:16 | 显示全部楼层
局部失效啊,我一直都是这样做的

出0入0汤圆

发表于 2018-5-31 11:59:37 | 显示全部楼层
jxm0336 发表于 2012-7-26 14:49
**** 作者被禁止或删除 内容自动屏蔽 ****

这样可以的
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-25 14:30

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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