zoukankan      html  css  js  c++  java
  • C#中串口与Modem的通信

    C#中串口与Modem的通信

    2007-08-20 09:52643人阅读评论(8)收藏举报

     最近一段时间,试验了串口的数据传输.在C#中,其实有一个很好的类SerialPort使串口间的通信变得简单而且好控制.

    一.下面给出SerialPort的基本属性:

                serialPort1.PortName = "COM1";      //打开指定串口的端口,也可以是COM2.
                serialPort1.BaudRate = 9600;          //波特率,这是通信中的一术语,可以查相关资料,一般都是9600.
                serialPort1.DataBits = 8;     //传输数据位,一次传几位二进制数据.
                serialPort1.Parity = Parity.None;   //校验,它分为三种,一种奇校验,一种偶校验,还有一种是无校验.
                serialPort1.StopBits = StopBits.One;     //停止位.
                serialPort1.DtrEnable = true;  //是在开始时,启用数据终端.它与Modem上的TR信号灯对应,如果开始此灯不亮,则无法传输数据,所以在Modem的通信中,应该加上这句.让终端设备准备好.
                serialPort1.RtsEnable = true; //这个是请求发送.

                serialPort1.Encoding = Encoding.ASCII;  //因为数据发送时,是以字节数组形式发送所以可以定义好编码.

    编码有:ASCII(只能传输英文),Unicode(可以传输中英文), UT8(中英文).根据自己的情况而定.

    但要说明一点,要是你用write(byte[],int start,int length)的话,最好自己确定编码,而不用serialPort1.Encoding = Encoding.ASCII进行设置.如:

    当你要传输

    string  strSend="hackenliu";

    则先将strSend转为byte[]形式.如下:

    byte []data= Encoding.ASCII.GetBytes(strSend);

    serialport1.write(data,0,data.length);    //发送数据了.

    在Encoding下,可以选用上面的ASCII,也可以是Uicode,或是UT8.不过,一定要注意,接收双方的编码应该一样.

     

    二.打开串口:

                if (serialPort1.IsOpen)
                {
                    serialPort1.Close();
                    serialPort1.Open();
                }
                else
                    serialPort1.Open();
                lblShow.Text = "串口已打开";

    三.发送数据:

    serialPort类提供了很多的发送数据函数.有write(param),还有writeLine();

    四.接收数据:

    添加serialport类的事件

    private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)

    当有数据时,它会自动接收的.

  • 相关阅读:
    html iframe 滚动条
    Angular-Ant Desigin 开篇
    端口访问不了的原因
    swift 加载 本地html 和 网络路径
    xcode9.4 报错 error:The resource could not be loaded because the App Transport Security policy requires the use of a secure connection.
    viewDidLoad, viewWillDisappear, viewWillAppear等区别及各自的加载顺序
    JavaScript设计模式之一Interface接口
    ES6原生Class
    react portals
    react-native-pushy 热更新
  • 原文地址:https://www.cnblogs.com/ypfnet/p/3861385.html
Copyright © 2011-2022 走看看