之前在学蓝牙通信的时候如何将单片机获取到的传感器的数值发送到上位机遇到了不少的问题。由于数据的发送一种是字符格式一种是(hex)也就是十六进制显示。传感器获取到的数值是十进制。这样显示起来就会不太一样。后来解决了这个问题,把一些过程分享出来,仅供参考。
1.单片机通过串口发送单个字符
- 功能:上位机给单片发送一个字符,单片机接收到后给上位机发送一个相同的字符。
- 代码
#include"reg51.h"
void UartInit(void);
unsigned char receive;
int main()
{
UartInit();
while(1)
{
if(RI==1)
{
receive=SBUF;
RI=0;
SBUF=receive;
while(TI==0)
TI=1;
}
}
}
void UartInit(void) //9600bps@11.0592MHz
{
PCON |= 0x80; //使能波特率倍速位SMOD
SCON = 0x50; //8位数据,可变波特率
TMOD &= 0x0F