硬汉嵌入式论坛

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

[emWin] 请教位流图PC端显示正常但是STM32F429显示不正常问题(已经解决)

[复制链接]

19

主题

31

回帖

88

积分

初级会员

积分
88
发表于 2018-7-26 15:23:49 | 显示全部楼层 |阅读模式
本帖最后由 张良 于 2018-7-26 17:06 编辑

如题:位流图PC端显示正常,但是STM32F429显示不正常问题
  • 平台

    平台1:VC6.0 + emwin5.38  + 16图层 + 1级缓存
    平台2:STM32F429 + RGB屏 + emwin5.40 + 双图层 + 2级缓存 + STemWin540_CM4_OS_IAR_ot_ARGB.a + IAR
  • 异常图片对比:
    见末尾附件
  • 部分代码

  1. static void emwin_task(void * data)
  2. {
  3.     RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_CRC, ENABLE);
  4.     GUI_Init();
  5.     emwin_view_exc();
  6.     while(1)
  7.     {
  8.         GUI_Delay(5);
  9.     }
  10. }
复制代码


  1. void emwin_view_exc(void)
  2. {
  3. #ifndef USE_EMWIN_VC6
  4.     WM_SetCreateFlags(WM_CF_MEMDEV);
  5.     WM_MULTIBUF_Enable(1);
  6.     GUI_SetBkColor(GUI_TRANSPARENT);
  7.     GUI_SelectLayer(1);
  8.     GUI_SetBkColor(GUI_TRANSPARENT);
  9.     GUI_Clear();
  10. #endif

  11.     sys_master_mem_create();
  12.     CreateFramewin1();
  13. }
复制代码


  1. #include "includes.h"
  2. #include "emwin_common.h"

  3. #define ID_FRAMEWIN_0 (GUI_ID_USER + 0x00)
  4. #define ID_IMAGE_0 (GUI_ID_USER + 0x04)
  5. #define ID_BUTTON_0 (GUI_ID_USER + 0x05)

  6. static const GUI_WIDGET_CREATE_INFO _aDialogCreate[] = {
  7.   { FRAMEWIN_CreateIndirect, "Framewin1", ID_FRAMEWIN_0, 0, 0, 320, 240, 0, 0x0, 0 },
  8.   { IMAGE_CreateIndirect, "Image", ID_IMAGE_0, 102, 65, 72, 90, 0, 0, 0 },
  9.   { BUTTON_CreateIndirect, "Button", ID_BUTTON_0, 99, 23, 80, 20, 0, 0x0, 0 },
  10. };

  11. extern sigle_mem g_mem_button_stop[];
  12. extern sigle_mem g_mem_sys_power[];

  13. static void _cbDialog(WM_MESSAGE * pMsg) {
  14.   const void * pData;
  15.   WM_HWIN      hItem;
  16.   U32          FileSize;
  17.   int          NCode;
  18.   int          Id;
  19.   switch (pMsg->MsgId) {
  20.   case WM_INIT_DIALOG:

  21.     hItem = WM_GetDialogItem(pMsg->hWin, ID_IMAGE_0);
  22.     IMAGE_SetDTA(hItem, g_mem_button_stop[0].buf, g_mem_button_stop[0].size);
  23.     //IMAGE_SetDTA(hItem, g_mem_sys_power[0].buf, g_mem_sys_power[0].size);
  24.     break;
  25.   case WM_NOTIFY_PARENT:
  26.     Id    = WM_GetId(pMsg->hWinSrc);
  27.     NCode = pMsg->Data.v;
  28.     switch(Id) {
  29.     case ID_BUTTON_0: // Notifications sent by 'Button'
  30.       switch(NCode) {
  31.       case WM_NOTIFICATION_CLICKED:
  32.         break;
  33.       case WM_NOTIFICATION_RELEASED:
  34.         break;
  35.       }
  36.       break;
  37.     }
  38.     break;
  39.   default:
  40.     WM_DefaultProc(pMsg);
  41.     break;
  42.   }
  43. }

  44. WM_HWIN CreateFramewin1(void);
  45. WM_HWIN CreateFramewin1(void) {
  46.   WM_HWIN hWin;
  47.   hWin = GUI_CreateDialogBox(_aDialogCreate, GUI_COUNTOF(_aDialogCreate), _cbDialog, WM_HBKWIN, 0, 0);
  48.   return hWin;
  49. }
复制代码




PC模拟

PC模拟

STM32平台

STM32平台
回复

使用道具 举报

19

主题

31

回帖

88

积分

初级会员

积分
88
 楼主| 发表于 2018-7-26 15:30:51 | 显示全部楼层
补充
1.PC端正常显示的位流图"72*90stop图",STM32平台没有显示,
2.若把图片改成“power35*35power”的位流图,则PC端和STM32端均可正常显示
回复

使用道具 举报

19

主题

31

回帖

88

积分

初级会员

积分
88
 楼主| 发表于 2018-7-26 17:07:35 | 显示全部楼层
不好意思,各位,问题找到了,sys_master_mem_create这个函数的实现粗心了
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-17 07:03 , Processed in 0.242007 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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