请问各位大大,本人最近在玩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);
}