OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4163|回复: 3

UCGUI显示出现一块死区,不能显示!!!

[复制链接]

22

主题

63

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
275
金钱
275
注册时间
2013-10-26
在线时间
17 小时
发表于 2015-3-27 16:38:20 | 显示全部楼层 |阅读模式
5金钱

    没进入死区前一切正常,时针,分针,秒针都正常显示(红色方框部分为死区):



秒针进入死区后,显示不全:


如果没有这个死区的话,秒针是要正常全部显示出来的,如下图例:




一直搞不懂是什么情况,请各路大神指点!

程序如下:

[mw_shl_code=c,true]#include "128x128ARMY_Interface.h" #include <math.h> #include <stddef.h> #include "GUI.h" #include "global_value.h" #define DEG2RAD (3.1415926f / 180000) #define MAG 4 extern GUI_CONST_STORAGE GUI_BITMAP bm128x128; //时钟表盘 //时针的坐标 static const GUI_POINT aNeedle1[] = { {0,0}, {16,-48}, {1,-120}, {-1,-120}, {-16,-48}, }; //分针的坐标 static const GUI_POINT aNeedle2[] = { {0,0}, {16,-40}, {1,-240}, {-1,-240}, {-16,-40}, }; //秒针的坐标 static const GUI_POINT aNeedle3[] = { {-4,60}, {4,60}, {4,-240}, {-4,-240}, }; /* * * 绘图函数 * */ static void _Draw(void *p) { PARAM *pParam; pParam = (PARAM *)p; if(pParam->AutoDevInfo.DrawFixed) //绘制背景 { GUI_ClearRect(0,0,128,128); GUI_DrawBitmap(&bm128x128,0,0);//显示表盘照片 } GUI_SetPenSize(1);//设置画笔大小为 1 个像素 //绘制移动的时针指针 GUI_SetColor(GUI_WHITE); GUI_AA_FillPolygon(pParam->aPoints1,GUI_COUNTOF(aNeedle1),256,256); //绘制移动的分针指针 GUI_SetColor(GUI_WHITE); GUI_AA_FillPolygon(pParam->aPoints2,GUI_COUNTOF(aNeedle2),256,256); //绘制移动的秒针指针 GUI_SetColor(GUI_RED); GUI_AA_FillPolygon(pParam->aPoints3,GUI_COUNTOF(aNeedle3),256,256); if(pParam->AutoDevInfo.DrawFixed) { GUI_SetColor(GUI_WHITE); GUI_AA_FillCircle(256,256,15);//绘制实心圆 } } /* * * 演示函数 * */ void Draw_WatchFace(void) { int t1 ; //用于指针的计数 int t2 ; int t3 ; //GUI_DrawBitmap(&bm128x128,0,0);//显示表盘照片 GUI_SetPenSize(1); //设置画笔大小为 1 个像素 //时针 t1 = 360000 - 30000 * Hour - 500 * Min; if(t1 < 0) { t1 = 360000; } //分针 t2 = 360000 - 6000 * Min; if(t2 < 0) { t2 = 360000; } //秒针 t3 = 360000 - 6000 * Sec;; if(t3 < 0) { t3 = 360000; } //旋转时针 Param.Angle1 = t1; Param.Angle1 *= DEG2RAD; GUI_SetColor(GUI_WHITE); GUI_RotatePolygon(Param.aPoints1,aNeedle1,GUI_COUNTOF(aNeedle1),Param.Angle1); //旋转分针 Param.Angle2 = t2; Param.Angle2 *= DEG2RAD; GUI_SetColor(GUI_WHITE); GUI_RotatePolygon(Param.aPoints2,aNeedle2,GUI_COUNTOF(aNeedle2),Param.Angle2); //旋转秒针 Param.Angle3 = t3; Param.Angle3 *= DEG2RAD; GUI_SetColor(GUI_RED); GUI_RotatePolygon(Param.aPoints3,aNeedle3,GUI_COUNTOF(aNeedle3),Param.Angle3); GUI_MEMDEV_DrawAuto(&AutoDev,&aram.AutoDevInfo,&_Draw,&aram); } [/mw_shl_code]
万分感谢!!!!


Love life, love the electrons!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165225
金钱
165225
注册时间
2010-12-1
在线时间
2107 小时
发表于 2015-3-27 22:57:52 | 显示全部楼层
回复

使用道具 举报

22

主题

63

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
275
金钱
275
注册时间
2013-10-26
在线时间
17 小时
 楼主| 发表于 2015-3-30 09:55:16 | 显示全部楼层
who can help me ?

救命啊!!!!!!!!!
Love life, love the electrons!
回复

使用道具 举报

22

主题

63

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
275
金钱
275
注册时间
2013-10-26
在线时间
17 小时
 楼主| 发表于 2015-3-31 11:50:32 | 显示全部楼层
在emWIN模拟器上,这个程序没问题,但在STM32板子上就有问题,请问懂的大神这个,这个问题怎么解决?
Love life, love the electrons!
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-1 14:29

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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