none
串口数据接收问题! RRS feed

  • 问题

  • 最近在编写一个从串口读取数据的软件。但是在调试时发现,当接收数据的第三位为 0x1A 时,数据总是接收错误!就是一下接收正常,一下有不正常。

    private SerialPort comm = new SerialPort();

    comm.RtsEnable = true; 

    comm.DataReceived += comm_DataReceived;

    comm.ReceivedBytesThreshold = 13;                           

    void comm_DataReceived(object sender, Serial

    DataReceivedEventArgs e)
            {
                if (Closing) return;

     
                    byte[] Received_Buffer = new byte[13];//声明一个临时数组存储当前来的串口数据  
                    received_count++;//增加接收计数  
                    comm.Read(Received_Buffer, 0, 13);//读取缓冲数据  
                    //builder.Clear();//清除字符串构造器的内容 
                    comm.Write(Received_Buffer.ToArray(), 0, 13);

            }

    发送的数据 FA 00 1a 12 65 14 3C 25 F1 40 AC CA FF

                    FA 00 1a 12 65 14 3C 25 F1 40 AC CA FF

    接收的数据 FA 00 1A 12 65 14 3C 25 F1 40 AC CA FF

                    FA 00 00 00 00 00 00 00 00 00 00 00 00

                    00 1A 12 65 14 3C 25 F1 40 AC CA FF 00

    发送数据也不快,一秒才发送一次,但为什么就这样子呢?

    2015年4月15日 3:42

全部回复

  • 你好:

    你的意思是设备通过串口给你的程序发送数据,但是你的程序接收到的数据有时会有问题是吧?

    你是如何确定设备发送的数据的?有没有尝试通过一些串口调试工具接收一下看看是否有相同情况?

    另外要确保串口的参数都没有问题,并且尝试使用ReadExisting等其他方法看看是否结果相同。


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.


    2015年4月16日 8:56
    版主