DHT11数据发送的问题

2019-03-24 17:29发布

请问各位大大,本人最近在玩DHT11 ,想用串口把数据发送到电脑的串口助手上来,如果发送自己给的具体的数值时就可以,但是要发送DHT11返回的值的时候就无法正常显示了 ,然后我在DHT11的子函数里加了亮一个灯的语句,灯是可以亮的,我一下找不出问题在哪里,望指教!
DHT11的子函数代码是这样的:
int DHT11()
{
uchar  U8RH_data_H_temp,U8RH_data_L_temp,U8T_data_H_temp,U8T_data_L_temp,U8checkdata_temp;
int H1;
  //主机拉低18ms
   P2_0=0;
   delay1ms(60);
   P2_0=1;
//总线由上拉电阻拉高 主机延时20us
   delay1us(0);
//   Delay_10us();
//   Delay_10us();
//主机设为输入 判断从机响应信号
   P2_0=1;
//判断从机是否有低电平响应信号 如不响应则跳出,响应则向下运行   
   if(!P2_0)   //T !   
   {
   U8FLAG=2;
//判断从机是否发出 80us 的低电平响应信号是否结束  
   while((!P2_0)&&U8FLAG++);
   U8FLAG=2;
//判断从机是否发出 80us 的高电平,如发出则进入数据接收状态
   while((P2_0)&&U8FLAG++);
//数据接收状态   
   COM();
   U8RH_data_H_temp=U8comdata;
   COM();
   U8RH_data_L_temp=U8comdata;
   COM();
   U8T_data_H_temp=U8comdata;
   COM();
   U8T_data_L_temp=U8comdata;
   COM();
   U8checkdata_temp=U8comdata;
   P2_0=1;
  // H1=U8T_data_H_temp;
//数据校验
   U8temp=(U8T_data_H_temp+U8T_data_L_temp+U8RH_data_H_temp+U8RH_data_L_temp);
   if(U8temp==U8checkdata_temp)
   {
    H1=U8T_data_H_temp;
   }
   }//fi
   return(H1);
}
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。