|

楼主 |
发表于 2016-11-21 18:20:07
|
显示全部楼层
回 eric2013 的帖子
eric2013:极有可能是你的驱动有问题,或者你的程序有问题,正常情况下,这种写法是没事的。 (2016-11-21 08:46)  DS18B20是直接和I\\O口连接的;DS18B20的程序是用的ARM例程(直接在EMWIN中调用,没有做修改),
#define ID_IMAGE_0 (GUI_ID_USER + 0x08)
#define ID_IMAGE_1 (GUI_ID_USER + 0x09)
extern IMAGE_Handle SET_hImage[3];
extern FIL BMPFile[2];
static void cb_BkWindow(WM_MESSAGE * pMsg) {
WM_HWIN hItem;
int NCode;
int Id;
int i;
switch (pMsg->MsgId) {
case WM_PAINT:
GUI_SetBkColor(GUI_WHITE);
GUI_Clear();
break;
case WM_INIT_DIALOG:
break;
case WM_NOTIFY_PARENT:
Id = WM_GetId(pMsg->hWinSrc);
NCode = pMsg->Data.v;
switch(Id)
{
case ID_IMAGE_1: //ID_IMAGE_0知代码,控制LED1
switch(NCode)
{
case WM_NOTIFICATION_CLICKED:
break;
case WM_NOTIFICATION_RELEASED:
LED1=~LED1; //LED1反转
for(i=0;i<4;i++)
WM_DeleteWindow(SET_hImage);
zhujiemian_demo();
break;
}
break;
}
break;
default:
WM_DefaultProc(pMsg);
break;
}
}
void shijian_demo(void)
{
WM_SetCallback(WM_HBKWIN,cb_BkWindow); //设置桌面窗口WM_HBKWIN的回调函数
WM_CreateTimer(WM_GetClientWindow(WM_HBKWIN), 0, 1000, 0);
SET_hImage[0] = IMAGE_CreateEx(75,20,90,95,WM_HBKWIN,WM_CF_SHOW,IMAGE_CF_TILE,ID_IMAGE_0);
f_open(&BMPFile[0]," ICTURE/oneshijian/oneshijian.bmp",FA_READ); //打开文件
IMAGE_SetBMPEx(SET_hImage[0],BmpGetData,(void *)&BMPFile[0]); //这里重绘第一个IMAGE图
SET_hImage[2] = IMAGE_CreateEx(200,285,32,32,WM_HBKWIN,WM_CF_SHOW,IMAGE_CF_TILE,ID_IMAGE_1);
f_open(&BMPFile[1]," ICTURE/RETURN/RETURN.bmp",FA_READ); //打开文件
IMAGE_SetBMPEx(SET_hImage[2],BmpGetData,(void *)&BMPFile[1]); //这里重绘第一个IMAGE图
}
总程序是类似上面图片程序界面的来回调用。
|
|