现有一个实验室设备,他有一个串口,我们的程序能不能通过这个串口去获取他每次检测的数据!!!小弟初次接触串口编程,也不知道能不能行的通,请各位前辈提供一个简单的思路,好让我依靠你们的思路下去!!

解决方案 »

  1.   

    可以通过串口思路是
    PC端开监听
    等硬件那边发数据过来 就ok了
    数据要有开始位和结束位 最好还有校验位
      

  2.   

    楼上的两位,能不能稍微讲的详细点,因为小弟刚接触这块,基础知识可能很欠缺purple_tide 
    你的意思是不时可以这样理解,我用一台pc机和设备连接,然后程序去监听这个串口,那边设备有实据产生就会自动往这个串口发数据,我的程序只用每次接收到数据区解析他就可以了?开始位和结束位 最好还有校验位又是什么意思
      

  3.   

    你的理解是正确的
    开始位和结束位 最好还有校验位又是什么意思 
    串口发送数据是一位一位的 也就是一个个bit如果没有结束位和开始位  很容易接收乱掉
    建议是 0xxxxxxxx1
    一次发送10个bit 不过只有中间的8个bit是数据校验位 一般是奇偶校验 可以不考虑
      

  4.   

    首先初始化串口的参数:
                serialPort1.PortName = "COM1";
                serialPort1.BaudRate = 4800;//波特率
                serialPort1.Parity = Parity.Odd;//校验位
                serialPort1.RtsEnable = true;
                serialPort1.DataBits = 8;//数据位数
                serialPort1.StopBits = StopBits.One;//
                serialPort1.ReceivedBytesThreshold = 1;//接收字节数发送数据:
    定义一个数组:
                    byte[] send = new byte[4];
                    send[0] = 0xaa;
                    send[1] = 0xaa;
                    send[2] = 0xd0;
                    send[3] = 0x00;
                    serialPort1.Write(send, 0, 4);
    接收数据:
            private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
            {
                byte r_byte;
                while (serialPort1.BytesToRead != 0)
                {
                    r_byte = Convert.ToByte(serialPort1.ReadByte());
                    //自己写了.接收处理.        }
      

  5.   

    找个串口通讯的dll,配置一些参数,在程序理调用