硬汉嵌入式论坛

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

[emWin] emwin在开发板上运行反应很慢,基本上是按下按键之后5秒左右才会有反应

[复制链接]

13

主题

43

回帖

82

积分

初级会员

积分
82
发表于 2020-4-9 17:19:47 | 显示全部楼层 |阅读模式
emwin在开发板上运行反应很慢,基本上是按下按键之后5秒左右才会有反应,特别是两个窗口显示,有一个设成透明的时候,反应特别慢,这个是什么原因呢
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115787
QQ
发表于 2020-4-9 17:42:51 | 显示全部楼层
上代码。
ps:开发板什么配置,ST,NXP ?  F1,F4,F7,H7?    外置SRAM, SDRAM ?    16bit带宽,32bit带宽?

回复

使用道具 举报

13

主题

43

回帖

82

积分

初级会员

积分
82
 楼主| 发表于 2020-4-9 18:02:31 | 显示全部楼层
eric2013 发表于 2020-4-9 17:42
上代码。
ps:开发板什么配置,ST,NXP ?  F1,F4,F7,H7?    外置SRAM, SDRAM ?    16bit带宽,32bit带宽?
...

使用的是正点原子的F4阿波罗,这个代码是我设置的上层界面的代码
  1. /*********************************************************************
  2. *                                                                    *
  3. *                SEGGER Microcontroller GmbH & Co. KG                *
  4. *        Solutions for real time microcontroller applications        *
  5. *                                                                    *
  6. **********************************************************************
  7. *                                                                    *
  8. * C-file generated by:                                               *
  9. *                                                                    *
  10. *        GUI_Builder for emWin version 5.44                          *
  11. *        Compiled Nov 10 2017, 08:53:57                              *
  12. *        (c) 2017 Segger Microcontroller GmbH & Co. KG               *
  13. *                                                                    *
  14. **********************************************************************
  15. *                                                                    *
  16. *        Internet: www.segger.com  Support: support@segger.com       *
  17. *                                                                    *
  18. **********************************************************************
  19. */

  20. // USER START (Optionally insert additional includes)
  21. // USER END

  22. #include "DIALOG.h"
  23. #include "RealTime_Graph.h"
  24. /*********************************************************************
  25. *
  26. *       Defines
  27. *
  28. **********************************************************************
  29. */
  30. #define ID_TYPESELECT_WINDOW  (GUI_ID_USER + 0x00)
  31. #define ID_TYPESELECT_TEXT  (GUI_ID_USER + 0x01)
  32. #define ID_APPLY_BUTTON  (GUI_ID_USER + 0x02)
  33. #define ID_CANCEL_BUTTON  (GUI_ID_USER + 0x03)
  34. #define ID_V_CHECKBOX  (GUI_ID_USER + 0x04)
  35. #define ID_MV_CHECKBOX  (GUI_ID_USER + 0x05)
  36. #define ID_MA_CHECKBOX  (GUI_ID_USER + 0x06)
  37. #define ID_C_DEGREE_CHECKBOX  (GUI_ID_USER + 0x07)
  38. #define ID_F_DEGREE_CHECKBOX  (GUI_ID_USER + 0x08)
  39. #define ID_PPM_CHECKBOX  (GUI_ID_USER + 0x09)
  40. #define ID_HZ_CHECKBOX  (GUI_ID_USER + 0x0A)
  41. #define ID_PULSE_CHECKBOX  (GUI_ID_USER + 0x0B)


  42. unsigned short RTTypeCheckState = 0;
  43. unsigned short TypeButtonHandle[2] = { 0 };
  44. int _Alpha_0 = 105;      //重绘操作的alpha值
  45. int _Alpha_1 = 255;       //
  46. BUTTON_SKINFLEX_PROPS Button_SkinFlex_Props;

  47. /*********************************************************************
  48. *
  49. *       Static data
  50. *
  51. **********************************************************************
  52. */

  53. // USER START (Optionally insert additional static data)
  54. // USER END

  55. /*********************************************************************
  56. *
  57. *       _aDialogCreate
  58. */
  59. static const GUI_WIDGET_CREATE_INFO _a_RTType_DialogCreate[] = {
  60.   { WINDOW_CreateIndirect, "", ID_TYPESELECT_WINDOW, 0, 0, 800, 480, 0, 0x0, 0 },
  61.   { TEXT_CreateIndirect, "", ID_TYPESELECT_TEXT, 95, 74, 51, 22, WM_CF_SHOW | TEXT_CF_HCENTER | TEXT_CF_VCENTER, 0x0, 0 },
  62.   { BUTTON_CreateIndirect, "", ID_APPLY_BUTTON, 210, 362, 140, 50, 0, 0x0, 0 },
  63.   { BUTTON_CreateIndirect, "", ID_CANCEL_BUTTON, 450, 362, 140, 50, 0, 0x0, 0 },
  64.   { CHECKBOX_CreateIndirect, "", ID_V_CHECKBOX, 95, 128, 80, 23, 0, 0x0, 0 },
  65.   { CHECKBOX_CreateIndirect, "", ID_MV_CHECKBOX, 256, 129, 80, 23, 0, 0x0, 0 },
  66.   { CHECKBOX_CreateIndirect, "", ID_MA_CHECKBOX, 419, 128, 80, 23, 0, 0x0, 0 },
  67.   { CHECKBOX_CreateIndirect, "", ID_C_DEGREE_CHECKBOX, 581, 128, 80, 23, 0, 0x0, 0 },
  68.   { CHECKBOX_CreateIndirect, "", ID_F_DEGREE_CHECKBOX, 95, 190, 80, 23, 0, 0x0, 0 },
  69.   { CHECKBOX_CreateIndirect, "", ID_PPM_CHECKBOX, 256, 190, 80, 23, 0, 0x0, 0 },
  70.   { CHECKBOX_CreateIndirect, "", ID_HZ_CHECKBOX, 419, 190, 80, 23, 0, 0x0, 0 },
  71.   { CHECKBOX_CreateIndirect, "", ID_PULSE_CHECKBOX, 581, 190, 80, 23, 0, 0x0, 0 },
  72.   // USER START (Optionally insert additional widgets)
  73.   // USER END
  74. };

  75. /*********************************************************************
  76. *
  77. *       Static code
  78. *
  79. **********************************************************************
  80. */

  81. //按键换肤函数
  82. int _DrawSkin_TypeSelect_Button(const WIDGET_ITEM_DRAW_INFO* pDrawItemInfo)
  83. {
  84.     switch (pDrawItemInfo->Cmd)
  85.     {
  86.     //case WIDGET_ITEM_CREATE:
  87.         //BUTTON_SetTextAlign(pDrawItemInfo->hWin, TEXT_CF_HCENTER | TEXT_CF_VCENTER);
  88.         //break;
  89.     case WIDGET_ITEM_DRAW_BACKGROUND:
  90.         switch (BUTTON_IsPressed(pDrawItemInfo->hWin))
  91.         {
  92.         case 0:
  93.             if (TypeButtonHandle[0] == pDrawItemInfo->hWin)
  94.             {
  95.                 GUI_SetColor(0x007AFF);
  96.                 GUI_AA_FillRoundedRect(pDrawItemInfo->x0, pDrawItemInfo->y0, pDrawItemInfo->x1, pDrawItemInfo->y1, 6);
  97.             }
  98.             else if (TypeButtonHandle[1] == pDrawItemInfo->hWin)
  99.             {
  100.                 GUI_SetColor(0xFF453A);
  101.                 GUI_AA_FillRoundedRect(pDrawItemInfo->x0, pDrawItemInfo->y0, pDrawItemInfo->x1, pDrawItemInfo->y1, 6);
  102.             }
  103.             break;
  104.         case 1:
  105.             if (TypeButtonHandle[0] == pDrawItemInfo->hWin)
  106.             {
  107.                 GUI_SetColor(0x0060FF);
  108.                 GUI_AA_FillRoundedRect(pDrawItemInfo->x0, pDrawItemInfo->y0, pDrawItemInfo->x1, pDrawItemInfo->y1, 6);
  109.             }
  110.             else if (TypeButtonHandle[1] == pDrawItemInfo->hWin)
  111.             {
  112.                 GUI_SetColor(0xF30E00);
  113.                 GUI_AA_FillRoundedRect(pDrawItemInfo->x0, pDrawItemInfo->y0, pDrawItemInfo->x1, pDrawItemInfo->y1, 6);
  114.             }
  115.             break;
  116.         default:
  117.             break;
  118.         }
  119.         //if (ButtonHandle[0] == pDrawItemInfo->hWin)
  120.         //{
  121.         //    if (BUTTON_IsPressed(pDrawItemInfo->hWin))
  122.         //    //if (RT_BUTTON_STATE == 0)
  123.         //    {
  124.         //    GUI_SetColor(0xFF7A00);
  125.         //    GUI_AA_FillRoundedRect(pDrawItemInfo->x0, pDrawItemInfo->y0, pDrawItemInfo->x1, pDrawItemInfo->y1, 6);
  126.         //    }
  127.         //    else
  128.         //    {
  129.         //    GUI_SetColor(0xFF7A00);
  130.         //    GUI_AA_FillRoundedRect(pDrawItemInfo->x0, pDrawItemInfo->y0, pDrawItemInfo->x1, pDrawItemInfo->y1, 6);
  131.         //    }
  132.         //}
  133.         //else if (ButtonHandle[1] == pDrawItemInfo->hWin)
  134.         //{
  135.         //    if (BUTTON_IsPressed(pDrawItemInfo->hWin))
  136.         //   //if (RT_BUTTON_STATE == 0)
  137.         //    {
  138.         //        GUI_SetColor(0x3A45FF);
  139.         //        GUI_AA_FillRoundedRect(pDrawItemInfo->x0, pDrawItemInfo->y0, pDrawItemInfo->x1, pDrawItemInfo->y1, 6);
  140.         //    }
  141.         //    else
  142.         //    {
  143.         //        GUI_SetColor(0x3A45FF);
  144.         //        GUI_AA_FillRoundedRect(pDrawItemInfo->x0, pDrawItemInfo->y0, pDrawItemInfo->x1, pDrawItemInfo->y1, 6);
  145.         //    }
  146.         //}
  147.         break;
  148.     default:
  149.         BUTTON_DrawSkinFlex(pDrawItemInfo);
  150.         break;
  151.     }
  152. }

  153. int _One_num(WM_MESSAGE* pMsg  ,unsigned short state)
  154. {
  155.     int i = 0, num = 0;
  156.     for (i = 0; i < 8; i++)
  157.     {
  158.         if (state & (1 << i))
  159.         {
  160.             num++;
  161.             if (num >= 2)
  162.                 break;
  163.         }
  164.     }
  165.     for (i = 0; i < 8; i++)
  166.     {
  167.         if ((state & (1 << i)) == 0)
  168.         {
  169.             if (num >= 2)
  170.             {
  171.                 WM_DisableWindow(WM_GetDialogItem(pMsg->hWin, ID_V_CHECKBOX + i));
  172.                 CHECKBOX_SetTextColor(WM_GetDialogItem(pMsg->hWin, ID_V_CHECKBOX + i), 0xE6E6E6);
  173.             }
  174.             else
  175.             {
  176.                 CHECKBOX_SetTextColor(WM_GetDialogItem(pMsg->hWin, ID_V_CHECKBOX + i), GUI_BLACK);
  177.                 WM_EnableWindow(WM_GetDialogItem(pMsg->hWin, ID_V_CHECKBOX + i));
  178.             }
  179.         }
  180.     }
  181.     return num;
  182. }

  183. unsigned short CheckBoxState = 0;
  184. /*********************************************************************
  185. *
  186. *       _cbDialog
  187. */
  188. static void _cb_RTType_Dialog(WM_MESSAGE * pMsg) {
  189.   WM_HWIN hItem;
  190.   int     NCode;
  191.   int     Id;
  192.   int i = 0;
  193.   
  194.   switch (pMsg->MsgId) {
  195.   case WM_INIT_DIALOG:
  196.     CheckBoxState = RTTypeCheckState;
  197.     hItem = WM_GetDialogItem(pMsg->hWin, ID_TYPESELECT_TEXT);
  198.     TEXT_SetFont(hItem, &GUI_FontYaHei28);
  199.     TEXT_SetText(hItem, "Type");


  200. //        Button_SkinFlex_Props.aColorFrame[0]=0x007AFF;
  201. //        Button_SkinFlex_Props.aColorFrame[1]=0x007AFF;
  202. //        Button_SkinFlex_Props.aColorFrame[2]=0x007AFF;
  203. //        Button_SkinFlex_Props.aColorLower[0]=0x007AFF;
  204. //        Button_SkinFlex_Props.aColorLower[1]=0x007AFF;
  205. //        Button_SkinFlex_Props.aColorUpper[0]=0x007AFF;
  206. //        Button_SkinFlex_Props.aColorUpper[1]=0x007AFF;
  207. //        Button_SkinFlex_Props.Radius=6;
  208. //        BUTTON_SetSkinFlexProps(&Button_SkinFlex_Props,BUTTON_SKINFLEX_PI_FOCUSSED);
  209. //        BUTTON_SetSkinFlexProps(&Button_SkinFlex_Props,BUTTON_SKINFLEX_PI_ENABLED);
  210. //       
  211. //                Button_SkinFlex_Props.aColorFrame[0]=0x0060FF;
  212. //        Button_SkinFlex_Props.aColorFrame[1]=0x0060FF;
  213. //        Button_SkinFlex_Props.aColorFrame[2]=0x0060FF;
  214. //        Button_SkinFlex_Props.aColorLower[0]=0x0060FF;
  215. //        Button_SkinFlex_Props.aColorLower[1]=0x0060FF;
  216. //        Button_SkinFlex_Props.aColorUpper[0]=0x0060FF;
  217. //        Button_SkinFlex_Props.aColorUpper[1]=0x0060FF;
  218. //        Button_SkinFlex_Props.Radius=6;
  219. //        BUTTON_SetSkinFlexProps(&Button_SkinFlex_Props,BUTTON_SKINFLEX_PI_PRESSED);
  220.        
  221.     hItem = WM_GetDialogItem(pMsg->hWin, ID_APPLY_BUTTON);
  222.     BUTTON_SetFont(hItem, &GUI_FontYaHei24);
  223.     //BUTTON_SetTextColor(hItem, BUTTON_SKINFLEX_PI_ENABLED, GUI_WHITE);
  224.     BUTTON_SetTextColor(hItem, BUTTON_SKINFLEX_PI_PRESSED, GUI_WHITE);
  225.     BUTTON_SetTextColor(hItem, BUTTON_SKINFLEX_PI_FOCUSSED, GUI_WHITE);
  226.     BUTTON_SetText(hItem, "Apply");
  227.     //ButtonHandle = 0;
  228.     TypeButtonHandle[0] = hItem;
  229.     BUTTON_SetSkin(hItem, _DrawSkin_TypeSelect_Button);              //换肤回调函数


  230.     hItem = WM_GetDialogItem(pMsg->hWin, ID_CANCEL_BUTTON);
  231.     BUTTON_SetFont(hItem, &GUI_FontYaHei24);
  232.     BUTTON_SetTextColor(hItem, BUTTON_SKINFLEX_PI_PRESSED, GUI_WHITE);
  233.     BUTTON_SetTextColor(hItem, BUTTON_SKINFLEX_PI_FOCUSSED, GUI_WHITE);
  234.     BUTTON_SetText(hItem, "Cancel");
  235.     //ButtonHandle = 1;
  236.     TypeButtonHandle[1] = hItem;
  237.     BUTTON_SetSkin(hItem, _DrawSkin_TypeSelect_Button);              //换肤回调函数

  238.     //CHECKBOX_SetDefaultSpacing(10);
  239.     //CHECKBOX_SetDefaultFont(&GUI_FontYaHei20);
  240.     CheckBox_Skinflex_Props.aColorFrame[0] = GUI_LIGHTGRAY;
  241.     CheckBox_Skinflex_Props.aColorFrame[1] = GUI_WHITE;
  242.     CheckBox_Skinflex_Props.aColorFrame[2] = GUI_WHITE;
  243.     CheckBox_Skinflex_Props.aColorInner[0] = GUI_WHITE;
  244.     CheckBox_Skinflex_Props.aColorInner[1] = GUI_WHITE;
  245.     CheckBox_Skinflex_Props.ColorCheck = 0x00007AFF;    //GUI_CYAN;
  246.     CHECKBOX_SetSkinFlexProps(&CheckBox_Skinflex_Props, CHECKBOX_SKINFLEX_PI_ENABLED);
  247.     CheckBox_Skinflex_Props.aColorFrame[0] = 0xE6E6E6;
  248.     CheckBox_Skinflex_Props.aColorFrame[1] = GUI_WHITE;
  249.     CheckBox_Skinflex_Props.aColorFrame[2] = GUI_WHITE;
  250.     CheckBox_Skinflex_Props.aColorInner[0] = GUI_WHITE;
  251.     CheckBox_Skinflex_Props.aColorInner[1] = GUI_WHITE;
  252.     CHECKBOX_SetSkinFlexProps(&CheckBox_Skinflex_Props, CHECKBOX_SKINFLEX_PI_DISABLED);
  253.     //
  254.     // Initialization of 'Checkbox'
  255.     //
  256.     hItem = WM_GetDialogItem(pMsg->hWin, ID_V_CHECKBOX);
  257.     CHECKBOX_SetFocusColor(hItem, GUI_WHITE);
  258.     CHECKBOX_SetFont(hItem, &GUI_FontYaHei24);
  259.     CHECKBOX_SetText(hItem, "V");
  260.     CHECKBOX_SetSpacing(hItem, 10);
  261.     CHECKBOX_SetSkinFlexButtonSize(hItem, 22);


  262.     hItem = WM_GetDialogItem(pMsg->hWin, ID_MV_CHECKBOX);
  263.     CHECKBOX_SetFocusColor(hItem, GUI_WHITE);
  264.     CHECKBOX_SetFont(hItem, &GUI_FontYaHei24);
  265.     CHECKBOX_SetText(hItem, "mV");
  266.     CHECKBOX_SetSpacing(hItem, 10);
  267.     CHECKBOX_SetSkinFlexButtonSize(hItem, 22);


  268.     hItem = WM_GetDialogItem(pMsg->hWin, ID_MA_CHECKBOX);
  269.     CHECKBOX_SetFocusColor(hItem, GUI_WHITE);
  270.     CHECKBOX_SetFont(hItem, &GUI_FontYaHei24);
  271.     CHECKBOX_SetText(hItem, "mA");
  272.     CHECKBOX_SetSpacing(hItem, 10);
  273.     CHECKBOX_SetSkinFlexButtonSize(hItem, 22);


  274.     hItem = WM_GetDialogItem(pMsg->hWin, ID_C_DEGREE_CHECKBOX);
  275.     CHECKBOX_SetFocusColor(hItem, GUI_WHITE);
  276.     CHECKBOX_SetFont(hItem, &GUI_FontYaHei24);
  277.     CHECKBOX_SetText(hItem, "℃啊");
  278.     CHECKBOX_SetSpacing(hItem, 10);
  279.     CHECKBOX_SetSkinFlexButtonSize(hItem, 22);


  280.     hItem = WM_GetDialogItem(pMsg->hWin, ID_F_DEGREE_CHECKBOX);
  281.     CHECKBOX_SetFocusColor(hItem, GUI_WHITE);
  282.     CHECKBOX_SetFont(hItem, &GUI_FontYaHei24);
  283.     CHECKBOX_SetText(hItem, "℉啊");
  284.     CHECKBOX_SetSpacing(hItem, 10);
  285.     CHECKBOX_SetSkinFlexButtonSize(hItem, 22);


  286.     hItem = WM_GetDialogItem(pMsg->hWin, ID_PPM_CHECKBOX);
  287.     CHECKBOX_SetFocusColor(hItem, GUI_WHITE);
  288.     CHECKBOX_SetFont(hItem, &GUI_FontYaHei24);
  289.     CHECKBOX_SetText(hItem, "ppm");
  290.     CHECKBOX_SetSpacing(hItem, 10);
  291.     CHECKBOX_SetSkinFlexButtonSize(hItem, 22);


  292.     hItem = WM_GetDialogItem(pMsg->hWin, ID_HZ_CHECKBOX);
  293.     CHECKBOX_SetFocusColor(hItem, GUI_WHITE);
  294.     CHECKBOX_SetFont(hItem, &GUI_FontYaHei24);
  295.     CHECKBOX_SetText(hItem, "Hz");
  296.     CHECKBOX_SetSpacing(hItem, 10);
  297.     CHECKBOX_SetSkinFlexButtonSize(hItem, 22);


  298.     hItem = WM_GetDialogItem(pMsg->hWin, ID_PULSE_CHECKBOX);
  299.     CHECKBOX_SetFocusColor(hItem, GUI_WHITE);
  300.     CHECKBOX_SetFont(hItem, &GUI_FontYaHei24);
  301.     CHECKBOX_SetText(hItem, "Pulse");
  302.     CHECKBOX_SetSpacing(hItem,10);
  303.     CHECKBOX_SetSkinFlexButtonSize(hItem, 22);

  304.     for (i = 0; i < 8; i++)
  305.     {
  306.         hItem = WM_GetDialogItem(pMsg->hWin, ID_V_CHECKBOX + i);
  307.         CHECKBOX_SetState(hItem, ((RTTypeCheckState >> i) & 0x0001));
  308.     }

  309.     break;
  310.   case WM_PAINT:
  311.       GUI_SetAlpha(_Alpha_0);                   // Set alpha value for drawing operations
  312.       //GUI_SetBkColor(GUI_MAKE_COLOR(0xAAAAAA)); // Draw gray background...
  313.       //GUI_SetBkColor(GUI_MAKE_COLOR(0x000000)); // Draw black background...
  314.       GUI_SetBkColor(GUI_BLACK); // Draw gray background...
  315.       GUI_Clear();                              // ...with alpha blending
  316.       GUI_SetAlpha((GUI_MAKE_COLOR(0) >> 24));  // Set alpha value to default

  317.       GUI_SetColor(GUI_WHITE);
  318.       GUI_FillRect(65, 52, 735, 428);
  319.       TEXT_SetText(WM_GetDialogItem(pMsg->hWin,ID_TYPESELECT_TEXT), "Type");
  320.       //_One_num(pMsg, CheckBoxState);
  321.       _One_num(pMsg, RTTypeCheckState);
  322.       break;
  323.   case WM_NOTIFY_PARENT:
  324.     Id    = WM_GetId(pMsg->hWinSrc);
  325.     NCode = pMsg->Data.v;
  326.     switch(Id) {
  327.     case ID_APPLY_BUTTON: // Notifications sent by 'Button'
  328.         switch (NCode) {
  329.         case WM_NOTIFICATION_CLICKED:
  330.             //_DeleteRTTypeSelectWindow(pMsg);
  331.             break;
  332.         case WM_NOTIFICATION_RELEASED:
  333.             
  334.             _DeleteRTTypeSelectWindow(pMsg);
  335.             break;
  336.         }
  337.         break;
  338.     case ID_CANCEL_BUTTON: // Notifications sent by 'Button'
  339.         switch (NCode) {
  340.         case WM_NOTIFICATION_CLICKED:
  341.             break;
  342.         case WM_NOTIFICATION_RELEASED:
  343.             RTTypeCheckState = CheckBoxState;
  344.             _DeleteRTTypeSelectWindow(pMsg);
  345.             break;
  346.         }
  347.         break;
  348.     case ID_V_CHECKBOX: // Notifications sent by 'Checkbox'
  349.       switch(NCode) {
  350.       case WM_NOTIFICATION_CLICKED:
  351.           //CheckBoxState ^= (1 << 0);
  352.           RTTypeCheckState ^= (1 << 0);
  353.           WM_InvalidateWindow(pMsg->hWin);
  354.         break;
  355.       case WM_NOTIFICATION_RELEASED:
  356.         break;
  357.       case WM_NOTIFICATION_VALUE_CHANGED:
  358.         break;
  359.       }
  360.       break;
  361.     case ID_MV_CHECKBOX: // Notifications sent by 'Checkbox'
  362.       switch(NCode) {
  363.       case WM_NOTIFICATION_CLICKED:
  364.           //CheckBoxState ^= (1 << 1);
  365.           RTTypeCheckState ^= (1 << 1);
  366.           WM_InvalidateWindow(pMsg->hWin);
  367.         break;
  368.       case WM_NOTIFICATION_RELEASED:
  369.          
  370.         break;
  371.       case WM_NOTIFICATION_VALUE_CHANGED:
  372. //          RTTypeCheckState ^= (1 << 1);
  373.         break;
  374.       }
  375.       break;
  376.     case ID_MA_CHECKBOX: // Notifications sent by 'Checkbox'
  377.       switch(NCode) {
  378.       case WM_NOTIFICATION_CLICKED:
  379.           //CheckBoxState ^= (1 << 2);
  380.           RTTypeCheckState ^= (1 << 2); WM_InvalidateWindow(pMsg->hWin);
  381.         break;
  382.       case WM_NOTIFICATION_RELEASED:
  383.          
  384.         break;
  385.       case WM_NOTIFICATION_VALUE_CHANGED:
  386. //          RTTypeCheckState ^= (1 << 2);
  387.         break;
  388.       }
  389.       break;
  390.     case ID_C_DEGREE_CHECKBOX: // Notifications sent by 'Checkbox'
  391.       switch(NCode) {
  392.       case WM_NOTIFICATION_CLICKED:
  393.           //CheckBoxState ^= (1 << 3);
  394.           RTTypeCheckState ^= (1 << 3); WM_InvalidateWindow(pMsg->hWin);
  395.         break;
  396.       case WM_NOTIFICATION_RELEASED:
  397.          
  398.         break;
  399.       case WM_NOTIFICATION_VALUE_CHANGED:
  400. //          RTTypeCheckState ^= (1 << 3);
  401.         break;
  402.       }
  403.       break;
  404.     case ID_F_DEGREE_CHECKBOX: // Notifications sent by 'Checkbox'
  405.       switch(NCode) {
  406.       case WM_NOTIFICATION_CLICKED:
  407.           //CheckBoxState ^= (1 << 4);
  408.           RTTypeCheckState ^= (1 << 4); WM_InvalidateWindow(pMsg->hWin);
  409.         break;
  410.       case WM_NOTIFICATION_RELEASED:
  411.          
  412.         break;
  413.       case WM_NOTIFICATION_VALUE_CHANGED:
  414. //          RTTypeCheckState ^= (1 << 4);
  415.         break;
  416.       }
  417.       break;
  418.     case ID_PPM_CHECKBOX: // Notifications sent by 'Checkbox'
  419.       switch(NCode) {
  420.       case WM_NOTIFICATION_CLICKED:
  421.           //CheckBoxState ^= (1 << 5);
  422.           RTTypeCheckState ^= (1 << 5); WM_InvalidateWindow(pMsg->hWin);
  423.         break;
  424.       case WM_NOTIFICATION_RELEASED:
  425.          
  426.         break;
  427.       case WM_NOTIFICATION_VALUE_CHANGED:
  428. //          RTTypeCheckState ^= (1 << 5);
  429.         break;
  430.       }
  431.       break;
  432.     case ID_HZ_CHECKBOX: // Notifications sent by 'Checkbox'
  433.       switch(NCode) {
  434.       case WM_NOTIFICATION_CLICKED:
  435.           //CheckBoxState ^= (1 << 6);
  436.           RTTypeCheckState ^= (1 << 6); WM_InvalidateWindow(pMsg->hWin);
  437.         break;
  438.       case WM_NOTIFICATION_RELEASED:
  439.          
  440.         break;
  441.       case WM_NOTIFICATION_VALUE_CHANGED:
  442. //          RTTypeCheckState ^= (1 << 6);
  443.         break;
  444.       }
  445.       break;
  446.     case ID_PULSE_CHECKBOX: // Notifications sent by 'Checkbox'
  447.       switch(NCode) {
  448.       case WM_NOTIFICATION_CLICKED:
  449.           //CheckBoxState ^= (1 << 7);
  450.           RTTypeCheckState ^= (1 << 7); WM_InvalidateWindow(pMsg->hWin);
  451.         break;
  452.       case WM_NOTIFICATION_RELEASED:
  453.          
  454.         break;
  455.       case WM_NOTIFICATION_VALUE_CHANGED:
  456. //          RTTypeCheckState ^= (1 << 7);
  457.         break;
  458.       }
  459.       break;
  460.     }
  461.     break;
  462.   default:
  463.     WM_DefaultProc(pMsg);
  464.     break;
  465.   }
  466. }

  467. /*********************************************************************
  468. *
  469. *       Public code
  470. *
  471. **********************************************************************
  472. */

  473. void _Alpha_cbWindow(WM_MESSAGE* pMsg) {
  474.     switch (pMsg->MsgId) {
  475.     case WM_PAINT:
  476.         GUI_SetAlpha(_Alpha_1);
  477.         //GUI_SetBkColor(GUI_MAKE_COLOR(GUI_WHITE));
  478.         //GUI_Clear();
  479.         break;
  480.     }
  481.     WINDOW_Callback(pMsg);
  482.     //FRAMEWIN_Callback(pMsg);
  483.     //GUI_SetAlpha(0);
  484.     GUI_SetAlpha((GUI_MAKE_COLOR(0) >> 24));  // Set alpha value to default
  485. }

  486. /*********************************************************************
  487. *
  488. *       CreateWindow
  489. */

  490. WM_HWIN _CreateRTTypeSelectWindow(void) {
  491.   WM_HWIN hWin;
  492.   GUI_UC_SetEncodeUTF8();
  493.   hWin = GUI_CreateDialogBox(_a_RTType_DialogCreate, GUI_COUNTOF(_a_RTType_DialogCreate), _cb_RTType_Dialog, WM_HBKWIN, 0, 0);
  494.   WM_SetHasTrans(hWin);                             // Set transparency     设置有透明性标记(可无)
  495.   WM_SetCallback(hWin, _Alpha_cbWindow);            // Overwrite callback  回调设置透明度
  496.   return hWin;
  497. }

  498. void _DeleteRTTypeSelectWindow(WM_MESSAGE* pMsg)
  499. {
  500.     GUI_EndDialog(pMsg->hWin,0);
  501. }

  502. /*************************** End of file ****************************/
复制代码
回复

使用道具 举报

13

主题

43

回帖

82

积分

初级会员

积分
82
 楼主| 发表于 2020-4-9 18:03:29 | 显示全部楼层
eric2013 发表于 2020-4-9 17:42
上代码。
ps:开发板什么配置,ST,NXP ?  F1,F4,F7,H7?    外置SRAM, SDRAM ?    16bit带宽,32bit带宽?
...

这个是正常的main函数代码
  1. int main(void)
  2. {
  3.     Stm32_Clock_Init(360,25,2,8);   //éè&#214;&#195;ê±&#214;ó,180Mhz   
  4.     HAL_Init();                     //3&#245;ê&#188;&#187;ˉHAL&#191;a
  5.     delay_init(180);                //3&#245;ê&#188;&#187;ˉ&#209;óê±oˉêy
  6.     uart_init(115200);              //3&#245;ê&#188;&#187;ˉUSART
  7.     LED_Init();                     //3&#245;ê&#188;&#187;ˉLED
  8.     KEY_Init();                     //3&#245;ê&#188;&#187;ˉ°′&#188;ü
  9.     SDRAM_Init();                   //SDRAM3&#245;ê&#188;&#187;ˉ
  10.     TFTLCD_Init();                          //LCD3&#245;ê&#188;&#187;ˉ
  11.     TP_Init();                                        //′¥&#195;t&#198;á3&#245;ê&#188;&#187;ˉ
  12.     TIM3_Init(999,89);              //1KHZ &#182;¨ê±&#198;÷3éè&#214;&#195;&#206;a1ms
  13.     TIM4_Init(999,899);             //′¥&#195;t&#198;áé¨&#195;è&#203;ù&#182;è,100HZ.
  14.     my_mem_init(SRAMIN);                    //3&#245;ê&#188;&#187;ˉ&#196;ú2&#191;&#196;ú′&#230;3&#216;
  15.         my_mem_init(SRAMEX);                    //3&#245;ê&#188;&#187;ˉía2&#191;&#196;ú′&#230;3&#216;
  16.         my_mem_init(SRAMCCM);                    //3&#245;ê&#188;&#187;ˉCCM&#196;ú′&#230;3&#216;
  17.         __HAL_RCC_CRC_CLK_ENABLE();                //ê1&#196;üCRCê±&#214;ó
  18.         GUI_Init();
  19.   WM_MULTIBUF_Enable(1);                        //&#191;a&#198;&#244;STemWin&#182;à&#187;o3&#229;£&#172;RGB&#198;á&#191;é&#196;ü&#187;áó&#195;μ&#189;
  20.         MainTask();
  21.     while(1)
  22.     {
  23.                 }
  24. }
复制代码
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115787
QQ
发表于 2020-4-9 18:20:12 | 显示全部楼层
笑物语 发表于 2020-4-9 18:02
使用的是正点原子的F4阿波罗,这个代码是我设置的上层界面的代码

那这个问题就不适合我来回复了,建议你去咨询下他们的技术支持。
回复

使用道具 举报

8

主题

151

回帖

175

积分

初级会员

积分
175
发表于 2020-4-9 18:35:43 | 显示全部楼层
笑物语 发表于 2020-4-9 18:02
使用的是正点原子的F4阿波罗,这个代码是我设置的上层界面的代码

买个安富莱的H7,没有技术问题可以难倒硬汉
回复

使用道具 举报

13

主题

43

回帖

82

积分

初级会员

积分
82
 楼主| 发表于 2020-4-9 19:01:04 | 显示全部楼层
eric2013 发表于 2020-4-9 18:20
那这个问题就不适合我来回复了,建议你去咨询下他们的技术支持。

好吧,谢谢
回复

使用道具 举报

0

主题

29

回帖

29

积分

新手上路

积分
29
发表于 2020-4-9 21:19:35 | 显示全部楼层
买一块安富莱的H7开发板,硬汉手拉手带你飞
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-18 20:19 , Processed in 0.343407 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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