在用单片机接受串口数据的时候,第一位是0x0A

Posted 邓疯子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在用单片机接受串口数据的时候,第一位是0x0A相关的知识,希望对你有一定的参考价值。

unsigned char data len=0; //命令字符串长度
if(RI) //如果数据已经接收完,即RI=1
{
RI=0; //对RI进行清零
cmd_buf[counter] = SBUF; //把收到的数据赋值给变量(注意接收的写法)

}

if(cmd_buf[counter]==0x0D) //如果串口输入回车,那么命令结束
{
cmd_buf[counter]=‘\0‘;
len=counter-1;
counter = 0;
flag=1;
}
else
counter = counter+1;

 

这样得到的cmd_buff的hex文件,第一位是0x0A,而文本文件中不会显示出来。

但是如果要做比较的话,要注意这个首位的影响。

比如接收到的文本是ABCD

要比较的字符串是"ABCD",

那么应该用cmd_buff[1]去和字符串的第0位去比较。

以上是关于在用单片机接受串口数据的时候,第一位是0x0A的主要内容,如果未能解决你的问题,请参考以下文章

如何实现单片机 串口接受不同长度氛数据

单片机的串口输入总是中断

使用C#实现串口通讯,接受和控制单片机。

单片机串口发送的数据一直是00;求解

单片机串口通信中换行的两种方法

单片机串口通信的带宽是多少