用51单片机采集温湿度传感器SHT11的数据,遇到问题

2020-01-20 19:02发布

用51单片机采集温湿度传感器SHT11的数据,用串口发给上位机,接上传感器能正常采集数据,但是不接传感器上位机就没有数据返回,怎么个情况?我单步调试倒是能运行到串口函数哪里,也能通过;;;;下面的函数都是网上一搜一大片的,此处函数体略掉
/*=========================================
启动函数
=========================================*/
void init_SHT()
{}
/*=========================================
字节传送函数
=========================================*/
uchar write_byte(uchar value)
{

}
/*=========================================
读数据函数
=========================================*/
uchar read_byte(uchar dat)
{

}
/*=========================================
复位函数
=========================================*/
void reset_SHT()
{
}
/*=========================================
发送指令到SHT11执行温度和湿度的测量转换
=========================================*/
void convert_SHT(SHT_dat *s,uchar mode)
{

}
/*=========================================
温度和湿度补偿及输出温度值和相对湿度值
=========================================*/
void caculation_SHT(SHT_dat *s)
{
}
//将得到的数据以十六进制数发送出去
void float_convert(SHT_dat *s)
{
        float com;
        uint dat;
        com=s->temperature;
        com*=100;
        dat=(uint)com;
        s->num_temp[0]=dat/256;
        s->num_temp[1]=dat%256;

        com=s->humidity;
        com*=100;
        dat=(uint)com;       
        s->num_humi[0]=dat/256;
        s->num_humi[1]=dat%256;
}
void main(void)
{
        SHT_dat aa; //定义温湿度测量处理结构体
        uchar wenshi1=0;       
        INIT_Time0();
        WDTInit();
       
        while(1)
        {
                        WDT(); //喂狗
                        convert_SHT(&aa,TEMP); //温度转换
                        convert_SHT(&aa,HUMI); //湿度转换
                        caculation_SHT(&aa); //温度和湿度的补偿
                        float_convert(&aa); //将浮点数转换成整型,各个位的数分别保存

                      if(Flag_Time1>200)  //1s执行一次
                  {
                                  Flag_Time1 = 0;
                                TxBuf[0]=aa.num_temp[0];
                                TxBuf[1]=aa.num_temp[1];
                                TxBuf[2]=aa.num_humi[0];
                                TxBuf[3]=aa.num_humi[1];
                                Tx_Buf(TxBuf,6);
                 }       
         }
}

单步调试完全可以运行到Tx_Buf(TxBuf,6);
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
魏道志
1楼-- · 2020-01-20 22:50
程序里面有检测上位机把,
魏道志
2楼-- · 2020-01-21 04:02
程序运行时PC是要给应答信号的
liude2006
3楼-- · 2020-01-21 05:19
 精彩回答 2  元偷偷看……