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

时间:2023-03-09 16:14:45
在用单片机接受串口数据的时候,第一位是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位去比较。