单片机怎么通过串口发送unsigned int类型的数据?

最近在做温度传感器的数据采集,DS18B20读出来的数据保存在了uint里,想把该数据采集出来发送到手机。请问该怎么做?

额 这还是个问题 单片机位数型号不同 int的长度是不一样的 拿stm32f1来说 int是32位的 就是4个char(8位) 你可以从高位开始发送四次 接收端再给他们拼凑出一个int就行了
void send (unsigned int a)
{
unsigned char s[4];
s[0] =(unsigned char) ((a &0xff000000) >> 24);
s[1] =(unsigned char) ((a &0xff0000) >> 16);
s[2] =(unsigned char) ((a &0xff00) >> 8);
s[3] =(unsigned char) (a &0xff) ;
//发送四个char就行了 接收的过程反过来
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-10-23
发送方:制订通讯协议,将16位数据分为高低两个字节,依次发送。
接收方:根据通讯协议,取出数据域的高低两个字节,拼接保存为16位数据。

百度嫌我字数不够追问

能举个例子吗,我不太懂C语言的机制,我在百度看到别人的回答是
int i ;
a=i/256;
b=i%256;
SBUF=a;
while(!TI);
TI=0
SBUF=b;
while(!TI);
TI=0
这样子吗?我试过了,在串口调试助手里,只会显示个叉叉或者一个正方形

本回答被网友采纳
相似回答