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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单片机怎么通过串口发送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就行了 接收的过程反过来
参考技术A 发送方:制订通讯协议,将16位数据分为高低两个字节,依次发送。
接收方:根据通讯协议,取出数据域的高低两个字节,拼接保存为16位数据。

百度嫌我字数不够追问

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

STM32单片机通过USART1接收到数据后,怎么把接收到的数据通过单片机的CAN口发送出去啊?

先编写usart1的接收程序,把接收到的数据存在数组里面,再编写can的发送程序,把数组的数据通过can发送出去,难点是usart的初始化,中断接收和can初始化,其实很简单的。先调好串口中断接收,再调试can发送。 参考技术A 这个可以把收到的数据保存在存储区域或数组中,然后通过CAN发送程序通过CAN端口发送出去。

以上是关于单片机怎么通过串口发送unsigned int类型的数据?的主要内容,如果未能解决你的问题,请参考以下文章

单片机怎么通过串口把变量int i的值传送到pc端显示

单片机串口向PC传送一个unsigned int 的数据 急求程序

单片机怎么通过串口发送一串数据?

C#中怎么向串口发送数据

STM32单片机通过USART1接收到数据后,怎么把接收到的数据通过单片机的CAN口发送出去啊?

单片机串口通信数据可以直接进行加减乘除处理吗