|
本帖最后由 gdgn_526345 于 2024-9-11 15:49 编辑
关于,RTX5 All In One(2024-08-30 V2.0)测试Button按钮控件显示流位图(QSPI),多BUTTON控件,多图片问题。
依据 V7-572_emWin6.x实验_Button按钮控件显示流位图(QSPI Flash RTOS)步骤,设置了ROM地址以及添加了
QSPI的下载算法,在RTX5 All In One(2024-08-30 V2.0)测试Button按钮控件显示流位图(QSPI),多BUTTON控件,程序能正常下载和写入。
1、多个BUTTON控件使用单个(相同) 流位图(QSPI)时,页面显示、BUTTON操作均正常(代码如下)。
GUI_HMEM hMemButtonStreamBitmap;
GUI_BITMAP Bitmap1;
GUI_LOGPALETTE Palette1;
GUI_BITMAP Bitmap2;
GUI_LOGPALETTE Palette2;
#define ID_WINDOW_0 (GUI_ID_USER + 0x00)
#define ID_TEXT_HANDER_BAR (GUI_ID_USER + 0x01)
#define ID_BUTTON_SETUP (GUI_ID_USER + 0x02)
#define ID_BUTTON_USER (GUI_ID_USER + 0x03)
/*
*********************************************************************************************************
* GUI_WIDGET_CREATE_INFO类型数组
*********************************************************************************************************
*/
static const GUI_WIDGET_CREATE_INFO _aDialogCreate_TPS_IntelligentControl_8105_MainFunctionSel_DisPage[] = {
{ WINDOW_CreateIndirect, "WINDOW", ID_WINDOW_0, 0, 0, 480,800,0,0},
{ BUTTON_CreateIndirect, " ", ID_BUTTON_SETUP, 130, 235, 82, 82, 0, 0 },
{ BUTTON_CreateIndirect, " ", ID_BUTTON_USER, 270, 235, 82, 82, 0, 0 },
};
//两个控用同样的图片时,程序正常
hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_SETUP);
//GUI_CreateBitmapFromStream(&Bitmap, &Palette, _acsetup_icon_80x80);
GUI_CreateBitmapFromStream(&Bitmap1, &Palette1, _acsetup_gear_80x80);
//BUTTON_SetBitmapEx(hItem, BUTTON_CI_UNPRESSED, &Bitmap, 1, 1);
BUTTON_SetBitmap(hItem, BUTTON_CI_UNPRESSED, &Bitmap1);
hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_USER);
//GUI_CreateBitmapFromStream(&Bitmap, &Palette, _acsetup_icon_80x80);
GUI_CreateBitmapFromStream(&Bitmap2, &Palette2, _acsetup_gear_80x80);
//BUTTON_SetBitmapEx(hItem, BUTTON_CI_UNPRESSED, &Bitmap, 1, 1);
BUTTON_SetBitmap(hItem, BUTTON_CI_UNPRESSED, &Bitmap2);
2、多个BOTTON控件使用不同,流位图(QSPI)时,一进入页面,就死机(特意给每一个BOTTON控制都单独定义了GUI_BITMAP Bitmap和GUI_LOGPALETTE Palette),见以下代码。
GUI_HMEM hMemButtonStreamBitmap;
GUI_BITMAP Bitmap1;
GUI_LOGPALETTE Palette1;
GUI_BITMAP Bitmap2;
GUI_LOGPALETTE Palette2;
#define ID_WINDOW_0 (GUI_ID_USER + 0x00)
#define ID_TEXT_HANDER_BAR (GUI_ID_USER + 0x01)
#define ID_BUTTON_SETUP (GUI_ID_USER + 0x02)
#define ID_BUTTON_USER (GUI_ID_USER + 0x03)
/*
*********************************************************************************************************
* GUI_WIDGET_CREATE_INFO类型数组
*********************************************************************************************************
*/
static const GUI_WIDGET_CREATE_INFO _aDialogCreate_TPS_IntelligentControl_8105_MainFunctionSel_DisPage[] = {
{ WINDOW_CreateIndirect, "WINDOW", ID_WINDOW_0, 0, 0, 480,800,0,0},
{ BUTTON_CreateIndirect, " ", ID_BUTTON_SETUP, 130, 235, 82, 82, 0, 0 },
{ BUTTON_CreateIndirect, " ", ID_BUTTON_USER, 270, 235, 82, 82, 0, 0 },
};
//两个BUTTON 控件用同样的图片时,程序进入画面就会死掉,
hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_SETUP);
//GUI_CreateBitmapFromStream(&Bitmap1, &Palette, _acsetup_icon_80x80);
GUI_CreateBitmapFromStream(&Bitmap1, &Palette1, _acsetup_gear_80x80);
//BUTTON_SetBitmapEx(hItem, BUTTON_CI_UNPRESSED, &Bitmap1, 1, 1);
BUTTON_SetBitmap(hItem, BUTTON_CI_UNPRESSED, &Bitmap1);
hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_USER);
//GUI_CreateBitmapFromStream(&Bitmap2, &Palette, _acsetup_icon_80x80);
GUI_CreateBitmapFromStream(&Bitmap2, &Palette2, _acsetup_icon_80x80);
//BUTTON_SetBitmapEx(hItem, BUTTON_CI_UNPRESSED, &Bitmap2, 1, 1);
BUTTON_SetBitmap(hItem, BUTTON_CI_UNPRESSED, &Bitmap2);
JLINK仿真发现程序停在以下位置。
|
-
ROM地址
-
下载算法文件
-
QSPI图片文件及地址
-
死停位置
|