liude2006 发表于 2015-5-8 13:46:47

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

用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=dat/256;
        s->num_temp=dat%256;

        com=s->humidity;
        com*=100;
        dat=(uint)com;       
        s->num_humi=dat/256;
        s->num_humi=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=aa.num_temp;
                                TxBuf=aa.num_temp;
                                TxBuf=aa.num_humi;
                                TxBuf=aa.num_humi;
                                Tx_Buf(TxBuf,6);
               }       
       }
}

单步调试完全可以运行到Tx_Buf(TxBuf,6);

魏道志 发表于 2015-5-9 16:12:17

程序里面有检测上位机把,

魏道志 发表于 2015-5-9 16:13:25

程序运行时PC是要给应答信号的

liude2006 发表于 2015-5-15 11:05:18

魏道志 发表于 2015-5-9 16:13
程序运行时PC是要给应答信号的

PC给应答信号?您有完整的程序吗?分享一下吧
页: [1]
查看完整版本: 用51单片机采集温湿度传感器SHT11的数据,遇到问题