用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);
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>