关于linux+arm下读取串口数据(ic感应模块)

数据读出来不一样,该模块在window用串口调试工具可以读出5组十六进制的数据,分别是:2E 48 4A FA D6 。在arm开发板下,编写串口应用代码,读出来有时候是4组:48 4a fa d6 ,也有时候会出现5组2e 48 4a fa d6,

        set_speed(fd,9600);
    if (set_Parity(fd,8,1,'N') == FALSE)  {
            printf("Set Parity Error\n");
            exit (0);
        }
 while(1)
    {
        if((nread = read(fd, buff, 255))>0)
        {
                 HexDump(buff,nread ,addr);//ascii码转化为十六进制
                                 memset (buff, 0, sizeof(buff));
        }
    }

是不是编写串口程序还漏了什么?

串口打开后,先清空发送、接收缓冲区试试。

https://blog.csdn.net/kevinhg/article/details/40991655