单片机怎么通过串口发送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类型的数据?的主要内容,如果未能解决你的问题,请参考以下文章
单片机串口向PC传送一个unsigned int 的数据 急求程序