硬汉嵌入式论坛

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

[μCGUI] 怎么在UC/GUI的控件上显示实时时间日期

[复制链接]

27

主题

94

回帖

175

积分

初级会员

积分
175
发表于 2018-4-11 10:42:31 | 显示全部楼层 |阅读模式
如题:

1523413630(1).png

我现在用外接键盘单击“系统日期” 这个控件就会跳出以下窗口

1523413671(1).png

然后外接键盘的左右键可以改变光标的位子,上下可以改变光标位子的数值,当改好的数值“确认”之后就会跟新到如图中的位子。并且24小时之后 “日”这里会加1.

最后在“系统时间” 这行,“秒”的位子会1秒一跟新。


总结下问题:1.实时数据怎么显示在控件中
                  2.怎么通过设置来改变实时数据之后在显示在控件中
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106934
QQ
发表于 2018-4-11 10:49:01 | 显示全部楼层
1、实时更新可以给你的窗口创建一个定时器。
2、设置完毕后,给你要更新的创建发emWin消息。
回复

使用道具 举报

27

主题

94

回帖

175

积分

初级会员

积分
175
 楼主| 发表于 2018-4-11 10:54:52 | 显示全部楼层
eric2013 发表于 2018-4-11 10:49
1、实时更新可以给你的窗口创建一个定时器。
2、设置完毕后,给你要更新的创建发emWin消息。

硬汉哥,有参考的代码或者文档么。讲大概的我很虚。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106934
QQ
发表于 2018-4-11 11:29:29 | 显示全部楼层
Mark 发表于 2018-4-11 10:54
硬汉哥,有参考的代码或者文档么。讲大概的我很虚。

先整第一个,emWin的定时器在我们新版emWin教程有对应的章节
http://www.armbbs.cn/forum.php?m ... &extra=page%3D1
回复

使用道具 举报

27

主题

94

回帖

175

积分

初级会员

积分
175
 楼主| 发表于 2018-4-11 14:59:32 | 显示全部楼层
eric2013 发表于 2018-4-11 11:29
先整第一个,emWin的定时器在我们新版emWin教程有对应的章节
http://www.armbbs.cn/forum.php?mod=vi ...

硬汉哥,我用的UC/GUI3.90的里面关于WM定时器的函数WM_CreateTimer()这个创建定时器的函数是有的,
但是WM_RestartTimer()这个窗口重启函数是没有的
还有WM_HTIMER这个数据类型也是没有的,怎么解决呢?
回复

使用道具 举报

27

主题

94

回帖

175

积分

初级会员

积分
175
 楼主| 发表于 2018-4-11 15:30:59 | 显示全部楼层
eric2013 发表于 2018-4-11 11:29
先整第一个,emWin的定时器在我们新版emWin教程有对应的章节
http://www.armbbs.cn/forum.php?mod=vi ...

硬汉哥,我好像有点明白实时显示了
Count++;
sprintf(buf, "%04d", Count);
TEXT_SetText(WM_GetDialogItem(hWin,GUI_ID_TEXT0), (const char *)buf);
是类似于这样的?把数据的值放在buf中,然后在在获得这个控件的句柄,在把数据传进去是这样的吗?
但是我现在的WM定时器重启函数WM_RestartTimer()这个没有,我就用了GUI_TIMER_Restart()这个函数在做了重启,但是效果还想不行呢。
硬汉哥,求助,咋解决WM_RestartTimer()这个问题呢,在网上找了半天没有相关说明!
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106934
QQ
发表于 2018-4-11 16:04:03 | 显示全部楼层
Mark 发表于 2018-4-11 15:30
硬汉哥,我好像有点明白实时显示了
Count++;
sprintf(buf, "%04d", Count);

UCGUI3.90的定时器的确是有这个bug,这个还真得想个别的办法了。

只能放在主函数的while大循环里面刷了。
回复

使用道具 举报

27

主题

94

回帖

175

积分

初级会员

积分
175
 楼主| 发表于 2018-4-11 16:31:43 | 显示全部楼层
eric2013 发表于 2018-4-11 16:04
UCGUI3.90的定时器的确是有这个bug,这个还真得想个别的办法了。

只能放在主函数的while大循环里面刷 ...

那我以后有多个实时数据放在多个控件中的话都放在一个wheli里的话。会不会就很混乱了?
还有一个就是我如果使用UCOS操作系统里的定时器替换我这里的WM定时器,这个可以吗?
硬汉哥,求拯救!
回复

使用道具 举报

27

主题

94

回帖

175

积分

初级会员

积分
175
 楼主| 发表于 2018-4-11 17:33:24 | 显示全部楼层
eric2013 发表于 2018-4-11 16:04
UCGUI3.90的定时器的确是有这个bug,这个还真得想个别的办法了。

只能放在主函数的while大循环里面刷 ...

硬汉哥,还有一个问题,即使我的WM定时器启动函数没有,那也应该执行一次的,但是我测试了下,
case WM_TIMER:  这个并没有进来,什么原因呢?
所有的步骤都是根据的你例程和代码来的。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106934
QQ
发表于 2018-4-12 01:57:17 | 显示全部楼层
Mark 发表于 2018-4-11 16:31
那我以后有多个实时数据放在多个控件中的话都放在一个wheli里的话。会不会就很混乱了?
还有一个就是我 ...

还是emWin自带的定时器方便。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106934
QQ
发表于 2018-4-12 01:57:59 | 显示全部楼层
Mark 发表于 2018-4-11 17:33
硬汉哥,还有一个问题,即使我的WM定时器启动函数没有,那也应该执行一次的,但是我测试了下,
case WM_ ...

估计是你的UCGUI版本问题,早期这个版本就是无法使用定期,我记得网上有个修正代码。
回复

使用道具 举报

27

主题

94

回帖

175

积分

初级会员

积分
175
 楼主| 发表于 2018-4-12 08:55:30 | 显示全部楼层
eric2013 发表于 2018-4-12 01:57
估计是你的UCGUI版本问题,早期这个版本就是无法使用定期,我记得网上有个修正代码。

硬汉哥,应为我也是第一次用这个UC/GUI(我们产品使用EMWIN的话就内存不够了,所以只能使用GUI),所以我也不知道GUI那个版本是没问题的,移植这个3.90的也是看到网上移植的资料都是以3.90位样板的。以你的经验的阅历的话,你能帮我看看哪个版本的GUI这个问题解决了吗?第一次独立负责一个项目,求帮助咯,硬汉哥!
回复

使用道具 举报

27

主题

94

回帖

175

积分

初级会员

积分
175
 楼主| 发表于 2018-4-12 17:00:05 | 显示全部楼层
eric2013 发表于 2018-4-11 16:04
UCGUI3.90的定时器的确是有这个bug,这个还真得想个别的办法了。

只能放在主函数的while大循环里面刷 ...

硬汉哥,我现在想放在wheli大循环里面刷的话,怎么操作呢,试了试,貌似我的在控件上什么反应都没有!
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106934
QQ
发表于 2018-4-13 03:00:14 | 显示全部楼层
Mark 发表于 2018-4-12 17:00
硬汉哥,我现在想放在wheli大循环里面刷的话,怎么操作呢,试了试,貌似我的在控件上什么反应都没有!

帖点代码看下,方便的话。
回复

使用道具 举报

27

主题

94

回帖

175

积分

初级会员

积分
175
 楼主| 发表于 2018-4-13 08:40:53 | 显示全部楼层
eric2013 发表于 2018-4-13 03:00
帖点代码看下,方便的话。
  1. #include <stddef.h>
  2. #include "GUI.h"
  3. #include "DIALOG.h"

  4. #include "WM.h"
  5. #include "BUTTON.h"
  6. #include "CHECKBOX.h"
  7. #include "DROPDOWN.h"
  8. #include "EDIT.h"
  9. #include "FRAMEWIN.h"
  10. #include "LISTBOX.h"
  11. #include "MULTIEDIT.h"
  12. #include "RADIO.h"
  13. #include "SLIDER.h"
  14. #include "TEXT.h"
  15. #include "PROGBAR.h"
  16. #include "SCROLLBAR.h"
  17. #include "LISTVIEW.h"

  18. #include "ltdc.h"
  19. #include "key.h"
  20. #include "GUI_X.h"

  21. WM_HWIN CreateFramewin3(void);

  22. static int Count = 0;
  23. char *s;
  24. char buf[10];

  25. #define GUI_ID_TEXT10   GUI_ID_USER+1
  26. #define GUI_ID_TEXT11   GUI_ID_USER+2
  27. #define GUI_ID_TEXT12   GUI_ID_USER+3
  28. #define GUI_ID_TEXT13   GUI_ID_USER+4
  29. #define GUI_ID_TEXT14   GUI_ID_USER+5

  30. static const GUI_WIDGET_CREATE_INFO _aDialogCreate3[] = {
  31.     { FRAMEWIN_CreateIndirect,  "system information",0,                       0,  0,  272,480,FRAMEWIN_CF_MOVEABLE,0},
  32.     { TEXT_CreateIndirect,      "SD card",           GUI_ID_TEXT0,            21, 16, 73, 20, 0,0},
  33.     { TEXT_CreateIndirect,      "battery",           GUI_ID_TEXT1,            21, 57, 73, 20, 0,0},
  34.     { TEXT_CreateIndirect,      "temperature",       GUI_ID_TEXT2,            21, 98, 73, 20, 0,0},
  35.     { TEXT_CreateIndirect,      "soft versions",     GUI_ID_TEXT3,            21, 139,73, 20, 0,0},
  36.     { TEXT_CreateIndirect,      "hard versions",     GUI_ID_TEXT4,            21, 180,73, 20, 0,0},
  37.     { TEXT_CreateIndirect,      "serial-number",     GUI_ID_TEXT5,            21, 221,73, 20, 0,0},
  38.     { TEXT_CreateIndirect,      "date",              GUI_ID_TEXT6,            21, 262,73, 20, 0,0},
  39.     { TEXT_CreateIndirect,      "TEXT7",             GUI_ID_TEXT7,            144,16, 110,20, 0,0},
  40.     { TEXT_CreateIndirect,      "TEXT8",             GUI_ID_TEXT8,            144,57, 110,20, 0,0},
  41.     { TEXT_CreateIndirect,      "TEXT9",             GUI_ID_TEXT9,            144,98, 110,20, 0,0},
  42.     { TEXT_CreateIndirect,      "TEXT10",            GUI_ID_TEXT10,           144,139,110,20, 0,0},
  43.     { TEXT_CreateIndirect,      "TEXT11",            GUI_ID_TEXT11,           144,180,110,20, 0,0},
  44.     { TEXT_CreateIndirect,      "TEXT12",            GUI_ID_TEXT12,           144,221,110,20, 0,0},
  45.     { TEXT_CreateIndirect,      "TEXT13",            GUI_ID_TEXT13,           144,262,110,20, 0,0},
  46.     { TEXT_CreateIndirect,      "TEXT14",            GUI_ID_TEXT14,           21, 306,233,129,0,0}
  47. };


  48. void PaintDialog3(WM_MESSAGE * pMsg)
  49. {
  50.     WM_HWIN hWin = pMsg->hWin;
  51.         (void)hWin;

  52. }

  53. void InitDialog3(WM_MESSAGE * pMsg)
  54. {
  55.     WM_HWIN hWin = pMsg->hWin;
  56.    
  57.     //FRAMEWIN
  58.     FRAMEWIN_SetTitleHeight(hWin,20);
  59.    
  60.     //GUI_ID_TEXT9
  61.     TEXT_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_TEXT9),0x0000ff);
  62.    
  63.     //GUI_ID_TEXT10
  64.     TEXT_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_TEXT10),0x00ff00);
  65.    
  66.     //GUI_ID_TEXT11
  67.     TEXT_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_TEXT11),0x80ffff);
  68.    
  69.     //GUI_ID_TEXT12
  70.     TEXT_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_TEXT12),0xff0000);
  71.    
  72.     //GUI_ID_TEXT13
  73.     TEXT_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_TEXT13),0xffff00);
  74.    
  75.     //GUI_ID_TEXT14
  76.     TEXT_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_TEXT14),0xc000c0);

  77. }


  78. static void _cbCallback3(WM_MESSAGE * pMsg)
  79. {
  80.     int NCode, Id;
  81.        
  82.     WM_HWIN hWin = pMsg->hWin;
  83.         printf("hWin=%d\r\n",hWin);
  84.     switch (pMsg->MsgId)
  85.     {
  86.         case WM_PAINT:
  87.             PaintDialog3(pMsg);
  88.             break;
  89.                 case WM_TIMER:
  90.                                 printf("222222");   [color=Red]//这里串口一直没有打印输出,根本就没有进来?[/color]
  91.                                  Count++;
  92.                                 sprintf(buf, "%04d", Count);
  93.                                 TEXT_SetText(WM_GetDialogItem(hWin,GUI_ID_TEXT14),(const char *)buf);
  94.                                 //WM_RestartTimer(pMsg->Data.v, 1000);       
  95.                         break;
  96.                
  97.         case WM_INIT_DIALOG:
  98.             InitDialog3(pMsg);
  99.             break;
  100.         case WM_KEY:
  101.             switch (((WM_KEY_INFO*)(pMsg->Data.p))->Key)
  102.             {
  103.                 case GUI_KEY_ESCAPE:
  104.                     GUI_EndDialog(hWin, 1);
  105.                     break;
  106.                 case GUI_KEY_ENTER:
  107.                     GUI_EndDialog(hWin, 0);
  108.                     break;
  109.             }
  110.             break;
  111.         case WM_NOTIFY_PARENT:
  112.             Id = WM_GetId(pMsg->hWinSrc);
  113.             NCode = pMsg->Data.v;        
  114.             switch (Id)
  115.             {
  116.                 case GUI_ID_OK:
  117.                     if(NCode==WM_NOTIFICATION_RELEASED)
  118.                         GUI_EndDialog(hWin, 0);
  119.                     break;
  120.                 case GUI_ID_CANCEL:
  121.                     if(NCode==WM_NOTIFICATION_RELEASED)
  122.                         GUI_EndDialog(hWin, 0);
  123.                     break;

  124.             }
  125.             break;
  126.         default:
  127.             WM_DefaultProc(pMsg);
  128.     }
  129. }

  130. //“系统信息”界面
  131. WM_HWIN CreateFramewin3(void)
  132. {
  133.         WM_HWIN hWin;

  134.         hWin = GUI_CreateDialogBox(_aDialogCreate3, GUI_COUNTOF(_aDialogCreate3), &_cbCallback3, 0, 0, 0);
  135.         return hWin;
  136. }


  137. void MainTask(void)
  138. {
  139.         //GUI_TIMER_HANDLE hTimer;
  140.         WM_HWIN hDlg;
  141.        
  142.     GUI_Init();

  143.         /* 使能UTF-8编码 */  
  144.         GUI_UC_SetEncodeUTF8();
  145.          
  146.     WM_SetDesktopColor(Colorspicture[255]);      /* Automacally update desktop window */
  147.     WM_SetCreateFlags(WM_CF_MEMDEV);  /* Use memory devices on all windows to avoid flicker */

  148.         hDlg=CreateFramewin3();

  149.         WM_CreateTimer(WM_GetClientWindow(hDlg),0,100,0);

  150.         while(1)
  151.         {       
  152.                 GUI_Exec();               
  153.         }
  154. }
复制代码
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106934
QQ
发表于 2018-4-14 02:03:24 | 显示全部楼层

你这个程序没问题的
回复

使用道具 举报

27

主题

94

回帖

175

积分

初级会员

积分
175
 楼主| 发表于 2018-4-18 16:50:33 | 显示全部楼层
eric2013 发表于 2018-4-14 02:03
你这个程序没问题的

硬汉哥,我在网上下了个UC/GUI5.24版本,现在想移植到我的工程里面去,但是里面貌似少了很多文件,不知道怎么配置了,在网上搜索了下UC/GUI5.24或者更高版本的移植,都没哟搜出来,不知道你知道不知道怎么样把5.24的移植到工程中呢?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106934
QQ
发表于 2018-4-18 17:53:15 | 显示全部楼层
Mark 发表于 2018-4-18 16:50
硬汉哥,我在网上下了个UC/GUI5.24版本,现在想移植到我的工程里面去,但是里面貌似少了很多文件,不知道 ...

直接使用emWin就行的。
回复

使用道具 举报

27

主题

94

回帖

175

积分

初级会员

积分
175
 楼主| 发表于 2018-4-18 18:11:02 | 显示全部楼层
eric2013 发表于 2018-4-18 17:53
直接使用emWin就行的。

我之前就是用的EMWIN,测色需要占用大概400KB的空间(加上我需要的一些界面显示)但是我这个板子无外接的SDRAM的,所以只能用CPU内部的SRAM来做全部工程的存储,所以我才换的UC/GUI的。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106934
QQ
发表于 2018-4-19 02:13:33 | 显示全部楼层
Mark 发表于 2018-4-18 18:11
我之前就是用的EMWIN,测色需要占用大概400KB的空间(加上我需要的一些界面显示)但是我这个板子无外接的 ...

“测色需要占用大概400KB的空间”  这个是什么,方便的话,交流下
回复

使用道具 举报

27

主题

94

回帖

175

积分

初级会员

积分
175
 楼主| 发表于 2018-4-19 08:50:00 | 显示全部楼层
本帖最后由 Mark 于 2018-4-19 09:59 编辑
eric2013 发表于 2018-4-19 02:13
“测色需要占用大概400KB的空间”  这个是什么,方便的话,交流下

是测试,我打成了测色了,不过都是一个意思。我LCD做缓存的空间大概是480*272/1024=127.5KB,因为我的是8bit颜色模式的,所以一个像素就是1个字节,然后移植EMWIN之后,他默认的是横屏,然后无论我怎么样修改关于横竖屏的函数都无法做到切换,最后发现要加大内存的空间就行,大概加到280KB的时候就可以达到竖屏的切换了(产品必须竖屏),所以加上之前的127KB大概就是400KB的使用内存空间,而且界面还只是做了一个大概的,还有其他的部分功能没有做上来,所以到后期内存是肯定不够用了。而我把EMWIN换成UC/GUI之后(工程中其他部分都没变),此时整个工程才占用250KB左右。这个就是我用GUI的原因了,然后这几天疯狂查了下窗口定时器的资料,大部分都是出自您那个例程的资料,其他的甚少,然后我又去查了你说的高版本解决定时器的问题,下了几个UC/GUI的(5.22,5.24,5.36等)但是貌似都是VS版本的,把GUI.LIB移植进来都会报错的。唉,现在我也不知道怎么解决了,硬汉哥,help!
回复

使用道具 举报

11

主题

122

回帖

160

积分

初级会员

积分
160
发表于 2018-4-19 09:09:12 | 显示全部楼层
试试创建一个别的定时器,然后WM_SendMessageNoPare() + WM_SelectWindow(),再直接GUI_Displaystr,这样试试,应该是可以的。
回复

使用道具 举报

27

主题

94

回帖

175

积分

初级会员

积分
175
 楼主| 发表于 2018-4-19 11:38:49 | 显示全部楼层
本帖最后由 Mark 于 2018-4-19 11:45 编辑
eric2013 发表于 2018-4-14 02:03
你这个程序没问题的

硬汉大佬,我之前做了下测试,WM_CreateTimer()这个窗口定时器的函数返回值一直是0,然后我跟进去看了下源码

  1. /*********************************************************************
  2. *
  3. *       WM_CreateTimer
  4. *
  5. *  Returns:    0 if failed, else != 0
  6. *  Parameters:
  7. *                hWin        Window handle of the window to receive the WM_TIMER message
  8. *                UserId      User defined Id. If not needed, use 0.
  9. *                Period      Number of time units (ticks)
  10. *                Mode        0: one-shot
  11. *
  12. */
  13. int WM_CreateTimer               (WM_HWIN hWin, int UserId, int Period, int Mode) {
  14.   int r = 0;
  15.   int TimerId;
  16.   GUI_HMEM hTimerLink;
  17.   TIMER_LINK* pLink;
  18.   WM_LOCK();
  19.   TimerId = GUI_X_CREATE_TIMER(Period, _OnTimer);
  20.   if (TimerId) {
  21.     hTimerLink = GUI_ALLOC_AllocZero(sizeof(TIMER_LINK));
  22.     if (hTimerLink) {
  23.       pLink = (TIMER_LINK*) GUI_ALLOC_h2p(hTimerLink);
  24.       /* Put new timer at beginning of the linked list */
  25.       pLink->hNext = _hFirst;
  26.       if (_hFirst) {
  27.         TIMER_LINK* pNext;
  28.         pNext = (TIMER_LINK*) GUI_ALLOC_h2p(_hFirst);
  29.       }
  30.       _hFirst = hTimerLink;
  31.       /* Fill in link data */
  32.       pLink->hWin    = hWin;
  33.       pLink->TimerId = TimerId;
  34.       pLink->UserId  = UserId;
  35.       r = 1;            /* All right, we have successfully created a new timer */
  36.     }
  37.   }
  38.   /* Cleanup in case of problem */
  39.   if (r == 0) {
  40.     if (TimerId) {
  41.       GUI_X_DELETE_TIMER(TimerId);
  42.     }
  43.   }
  44.   WM_UNLOCK();
  45.   return r;
  46. }
复制代码



返回值如果是0的话就是失败的,非0才是成功的,
然后为什么这个函数调用失败呢
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106934
QQ
发表于 2018-4-20 03:13:55 | 显示全部楼层
Mark 发表于 2018-4-19 08:50
是测试,我打成了测色了,不过都是一个意思。我LCD做缓存的空间大概是480*272/1024=127.5KB,因为我的是8 ...

UC/GUI的(5.22,5.24,5.36等)就是emWin,他们一样的,没有区别。

你用emWin时大,估计是动态内存设置的大。也就是GUIConf.c文件里面,你看看你设置的多大。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106934
QQ
发表于 2018-4-20 03:14:25 | 显示全部楼层
还是不行的话,建议换个方法吧,比如楼上网友提的建议,我觉得可以的。
回复

使用道具 举报

27

主题

94

回帖

175

积分

初级会员

积分
175
 楼主| 发表于 2018-4-20 11:53:42 | 显示全部楼层
有梦为马 发表于 2018-4-19 09:09
试试创建一个别的定时器,然后WM_SendMessageNoPare() + WM_SelectWindow(),再直接GUI_Displaystr,这样试试 ...

老铁,感谢,根据你的提示,搞定了实时刷新数据了
回复

使用道具 举报

27

主题

94

回帖

175

积分

初级会员

积分
175
 楼主| 发表于 2018-4-20 11:56:18 | 显示全部楼层
本帖最后由 Mark 于 2018-4-20 18:24 编辑
eric2013 发表于 2018-4-20 03:14
还是不行的话,建议换个方法吧,比如楼上网友提的建议,我觉得可以的。

硬汉哥,我根据22楼老铁的提示。已经搞定了GUI中控件实时显示时间的问题。还有两小问题就是:                                                                                                                                                     1.我每次刷新数据的时候LCD屏上都有2条黑线一闪一闪的,这个可能是哪方面的原因照成的了?
2.我现在项目中有好几个地方都必须得用到while来做轮询处理了,此时我是不是该上操作系统了?


回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106934
QQ
发表于 2018-4-21 09:59:52 | 显示全部楼层
Mark 发表于 2018-4-20 11:56
硬汉哥,我根据22楼老铁的提示。已经搞定了GUI中控件实时显示时间的问题。还有两小问题就是:            ...

1、你现在用的什么屏,RA8875控制的?

2、如果你说的while循环都是emWin的,不用的,你得修改下你的实现框架。
回复

使用道具 举报

27

主题

94

回帖

175

积分

初级会员

积分
175
 楼主| 发表于 2018-4-21 10:34:22 | 显示全部楼层
eric2013 发表于 2018-4-21 09:59
1、你现在用的什么屏,RA8875控制的?

2、如果你说的while循环都是emWin的,不用的,你得修改下你的实 ...

1.480*272的天马的RGB屏,直接用的F7里的LTDC来做的LCD的控制
2.GUI里面有几个轮询,外部的外接设备也有几个轮询(如,USB接口,SD卡的接口等),这样的话应该要用到操作系统了吧?
回复

使用道具 举报

0

主题

46

回帖

46

积分

新手上路

积分
46
发表于 2018-10-17 16:26:40 | 显示全部楼层
ucgui也发现类似问题       周期模拟 key 完成处理的   
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-10 15:33 , Processed in 0.384038 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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