none
如何使用serialPort发送AT指令? RRS feed

答案

  • 实例一个串口对象:

     SP = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One);

    然后用Open()方法使能并打开串口:

     SP.Open();

    调用Read()可以从实例指定的串口读取数据到缓冲区:

    byte[]  RecData = new byte[SP.BytesToRead];

    SP.Read(RecData , 0 , RecData.Length);

    用Write()发送数据:

    SP.Write(bytBuffer, 0, bytBuffer.Length);

    如发送AT指令(后面必须有回车换行符):AT+i

    SP.Write("AT+i"+ "\r\n");

    一些可能你需要注意的属性:

    ReceivedBytesThreshold 属性是接收中断的字节数  通常为1.

    ReadTimeout 属性是发送和接收超时。单位是毫秒

    对象有一个DataReceived的事件,你可以指向自己的方法对接收中断调用使用自己的代码处理。如使用方法A()处理每次接收中断:

    SP.DataReceived += new SerialDataReceivedEventHandler(A);

    public void A(object sender, SerialDataReceivedEventArgs e)

    {

    ...

    }

    • 已编辑 KingSoft.H 2013年1月26日 3:47
    • 已标记为答案 DeamSky 2013年1月28日 2:50
    2013年1月26日 3:41

全部回复

  • 你好,

    你可以使 SerialPort.Write Method (String) 将指定的字符串写入串行端口。另外,你的问题在本论坛中属于off topic的内容,并且MSDN中文论坛中并没有相应的论坛来支持你所描述问题的专业方向。所以,我建议你到相应的英文论坛(Windows Communication Foundation, Serialization, and Networking)提问。

    在那里你将得到更加“高质量”的回复以及更加专业的支持。此帖将被移到“一般性问题讨论区”。

    谢谢你的理解与支持。



    Lisa Zhu [MSFT]
    MSDN Community Support | Feedback to us
    Develop and promote your apps in Windows Store
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.



    2013年1月25日 10:55
    版主
  • 实例一个串口对象:

     SP = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One);

    然后用Open()方法使能并打开串口:

     SP.Open();

    调用Read()可以从实例指定的串口读取数据到缓冲区:

    byte[]  RecData = new byte[SP.BytesToRead];

    SP.Read(RecData , 0 , RecData.Length);

    用Write()发送数据:

    SP.Write(bytBuffer, 0, bytBuffer.Length);

    如发送AT指令(后面必须有回车换行符):AT+i

    SP.Write("AT+i"+ "\r\n");

    一些可能你需要注意的属性:

    ReceivedBytesThreshold 属性是接收中断的字节数  通常为1.

    ReadTimeout 属性是发送和接收超时。单位是毫秒

    对象有一个DataReceived的事件,你可以指向自己的方法对接收中断调用使用自己的代码处理。如使用方法A()处理每次接收中断:

    SP.DataReceived += new SerialDataReceivedEventHandler(A);

    public void A(object sender, SerialDataReceivedEventArgs e)

    {

    ...

    }

    • 已编辑 KingSoft.H 2013年1月26日 3:47
    • 已标记为答案 DeamSky 2013年1月28日 2:50
    2013年1月26日 3:41
  • 已经解决了,不过还是谢谢!
    2013年1月28日 2:50