STC89C52单片机程序问题,将采集到的温度数据发送给上位机的VB程序,下面的程序为什么发送不了数据?

while(!RI){GetTemperture1();//采集温度Temp1Conv();//温度转换GetTemperture2();//采集温度Temp2Conv(... while(!RI)
{
GetTemperture1();//采集温度
Temp1Conv();//温度转换
GetTemperture2();//采集温度
Temp2Conv();//温度转换
lcd_init();//显示屏清屏
TempDisp();显示当前温度
}
receive=SBUF;
RI=0;
uart_init();串口初始化
if(receive=='m')
{
GetTemperture2();//采集温度
Temp2Conv();
TempDisp();
temp=((temp_data[1]&0x07)*256+temp_data[0])*0.0625*10;计算温度值
uart_send_byte(temp>>8);发送高八位
uart_send_byte(temp);发送低八位
}

单片机接收到字符判断如果是m,就发送温度数据
展开
 我来答
11kxmx
推荐于2017-08-21 · TA获得超过1.4万个赞
知道大有可为答主
回答量:1.2万
采纳率:70%
帮助的人:2490万
展开全部
上位机收到数据了吗?如果没收到是串口设置或硬件电路有问题,如果收到数据不正确,再检查程序问题 ,如temp是什麼类型,若是浮点型,则下面的发送高8位和低8位的语句应该是错的,uart_send_byte(temp>>8); uart_send_byte(temp);
若是整型,则temp=((temp_data[1]&0x07)*256+temp_data[0])*0.0625*10可能会出错
另外串口初始化设置定时器了吗?
上位机串口接收程序自发自收正常吗?
追问
温度值有两个,这个不能发,另外一个温度值的就能发,代码只是数字1和2的区别,例如GetTemperture1和GetTemperture2
cjj796
2015-08-17 · TA获得超过8709个赞
知道大有可为答主
回答量:1.3万
采纳率:68%
帮助的人:3450万
展开全部
你好!
检查波特率和其他设置
追问
其他设置检查很多次了,没问题
追答
私信联系,我代码发一下,帮你看看
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式