|
直接上完整的代码:
typedef struct
{
GUI_AUTODEV_INFO AutoDevInfo;
}PARAM2;
static GUI_RECT batRect[] = {
{18,20,18 + 100,20 + 14},
{18,45,18 + 100,45 + 14},
};
uint8_t batPercentA = 10,batPercentB = 80;
void GUI_DrawDisp_MainFace1(void *p)
{
uint16_t x = 0,y = 0,i = 0;
GUI_RECT rect;
PARAM2 *Param2 = (PARAM2 *)p;
if(Param2->AutoDevInfo.DrawFixed){
GUI_SetBkColor( GUI_BLACK );
GUI_Clear();
GUI_SetFont(&GUI_Font24_ASCII);
for(i = 0;i < GUI_COUNTOF(batRect);i ++ ){
x = batRect.x1 + 4;
y = batRect.y1 - 12;
GUI_DrawBitmap(&bmbat_small_icon,x,y);//
y -= 4;
x += bmbat_small_icon.XSize + 3;
GUI_DispStringAt(i?"B":"A",x,y);
}
}
for(i = 0;i < GUI_COUNTOF(batRect);i ++){
memcpy((void*)&rect,(const void*)&batRect,sizeof(GUI_RECT));
rect.x1 = rect.x0 + (i?batPercentB:batPercentA);
GUI_SetColor(GUI_LIGHTBLUE);
GUI_FillRectEx(&rect);
rect.x0 = rect.x1;
rect.x1 = batRect.x1;
GUI_SetColor(GUI_WHITE);
GUI_FillRectEx(&rect);
}
}
void GUI_Usr_MainFace(void)
{
PARAM2 Param;
GUI_AUTODEV AutoDev;
GUI_MEMDEV_CreateAuto(&AutoDev);
GUI_MEMDEV_DrawAuto(&AutoDev,&Param.AutoDevInfo,&GUI_DrawDisp_MainFace1,&Param);
GUI_MEMDEV_DeleteAuto(&AutoDev);
}
问题:在自动存储设备中调用了GUI_DrawBitmap函数,则在显示屏上什么都不显示了,打断点只会进入一次;如果去掉了该函数,则显示正常了
硬汉哥,这个是什么问题,小白一枚,刚刚开始学习。
|
|