c#——串口通信

  1. 串行接口:是一种可以接收来自CPU的并行数据字符连续的串行数据流发送出去,同时也可以接收将串行数据流转换为并行的数据字符供给CPU的器件。一般能完成这中功能的电路,称为串行接口电路。
  2. 串口:是计算机上一种非常通用的设备通讯协议。也是仪器仪表设备通用的通讯协议
  3. 串口通讯:外设和计算机间通过数据信号线、地线、控制线等,按位进行传输数据的一种通讯方式(使用的数据线少,远距离通信可以节约成本,但传输速度与并行通讯慢)。串口通讯可以使用一根线发送数据的同事用另一条线接收数据
  4. 参数:波特率、数据位、停止位、奇偶检验。(两个正在通信的端口,这些参数必须匹配)
  5. 常用参数方法
    PortName 获取或设置通信端口
    BaudRate 获取或设置串行波特率

    BaudBits

    获取或设置每个字节的标准数据位长度
    Parity 获取或设置奇偶检验协议
    StopBits 获取或设置每个字节的标准停止位数
    Open() 打开端口连接
    Close() 关闭端口连接
    Read() 从输入缓冲区读取数据
    GetPortNames() 获取当前计算机的串行端口名数组
    write() 将数据写入串行端口的缓冲区
    ReaExisting() 读取SerialPort对象流和输入缓冲区中所有立即可用的字节
    DataReceived 处理SerialPort对象的数据接收事件的方法
  6. using System.IO.Ports;
    
    SerialPort myserialport = new SerialPort("COM1");
    myserialport.BaudRate = 9600;//波特率
    myserialport.Parity = Parity.None;//奇偶检验协议
    myserialport.StopBits = StopBits.One;//停止位
    myserialport.DataBits = 8;//数据位
    
    myserialport.DataReceived += new SerialDataReceivedEvenHandler(DataReceiveHandler);
    myserialport.Open();//打开端口连接
    
    myserialport.Write("hello world");
    myserialport.Write(new byte[]{0x0A,0xE2,0xFF},0,3);
    
    myserialport.Close();//断开端口连接
    
    public void DataReceiveHandler(object sender,SerialDataReceivedEventArgs e)
    {
        try
        {
            myserialport.ReadExisting();
        }
        catch(Exception ex)
        {
            
        }
    }

你可能感兴趣的:(c#)