|
DHT11程序在裸机下是显示正常的
但加入emWin中就不显示了
main文件中的任务
//DHT11温湿度
OSTaskCreate((OS_TCB* )&DHTTaskTCB,
(CPU_CHAR* )"DHT task",
(OS_TASK_PTR )DHT_task,
(void* )0,
(OS_PRIO )DHT_TASK_PRIO,
(CPU_STK* )&DHT_TASK_STK[0],
(CPU_STK_SIZE)DHT_STK_SIZE/10,
(CPU_STK_SIZE)DHT_STK_SIZE,
(OS_MSG_QTY )0,
(OS_TICK )0,
(void* )0,
(OS_OPT )OS_OPT_TASK_STK_CHK|OS_OPT_TASK_STK_CLR,
(OS_ERR* )&err);
OS_TaskSuspend((OS_TCB*)&StartTaskTCB,&err); //挂起开始任务
OS_CRITICAL_EXIT(); //退出临界区
}
//DHT11温湿度
void DHT_task(void *p_arg)
{ int t=0;
u8 temperature;
u8 humidity;
while(1)
{
if(t%10==0)//每100ms读取一次
{
DHT11_Read_Data(&temperature,&humidity);
}
}
}
//界面任务
static void Caculate_RTC(WM_MESSAGE * pMsg)
{
char buf[30];
char bufa[30];
char bufb[30];
char bufc[30];
// u8 a=atoi(&temperature);
WM_HWIN hWin = pMsg->hWin;
/*显示年月日 */
sprintf(bufa,"%02d年%02d月%02d日",calendar.w_year,calendar.w_month,calendar.w_date);
TEXT_SetText(WM_GetDialogItem(hWin,ID_TEXT_0), bufa);
/*显示时间 */
sprintf(buf,"%02d:%02d:%02d",calendar.hour,calendar.min,calendar.sec);
TEXT_SetText(WM_GetDialogItem(hWin,ID_TEXT_2), buf);
/*显示温度 */
sprintf(bufb,"%d℃",aa[0]);
TEXT_SetText(WM_GetDialogItem(hWin,ID_TEXT_3),bufb);
/* 显示湿度 */
sprintf(bufc,"%d%",aa[1]);
TEXT_SetText(WM_GetDialogItem(hWin,ID_TEXT_4),bufc);
}
case WM_TIMER:
/* 显示时间和日期 */
Caculate_RTC(pMsg);
/* 重启定时器 */
WM_RestartTimer(pMsg->Data.v, 1000);
break; |
|