2.以类的方式 VB: 1) 定义SerialPort类实例 Dim SpCom As New System.IO.Ports.SerialPort() 2) 设置通讯端口号及波特率、数据位、停止位和校验位。 SpCom.PortName = "COM1" SpCom.BaudRate = 9600 SpCom.Parity = IO.Ports.Parity.None SpCom.DataBits = 8 SpCom.StopBits = IO.Ports.StopBits.One 或是定义时直接初始化 Dim SpCom As New System.IO.Ports.SerialPort("COM1", 9600, IO.Ports.Parity.Even, 8, IO.Ports.StopBits.None) 3) 发送数据 SpCom.Write(TextSendData.Text) 4) 添加接受事件 a) 在运行时将事件与事件处理程序相关联 AddHandler SpCom.DataReceived, AddressOf EventReceiveData 说明: AddressOf 创建引用特定过程的过程委托实例 AddressOf 运算符可以用作委托构造函数的操作数,或可以用在编译器能够确定委 托类型的上下文中。 b) 添加事件处理程序(签名一定要一致) Sub EventReceiveData(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) 5) 读取数据 Dim strT As String strT = SpCom.ReadExisting() C#: 1) 添加引用 using System.IO.Ports; 2) 定义SerialPort类实例 private SerialPort SpCom2 = new SpCom ("COM2", 9600,Parity.None, 8, StopBits.One); 3) 设置通讯端口号及波特率、数据位、停止位和校验位。 SpCom.PortName = "COM1"; SpCom.BaudRate = 9600; SpCom.Parity = IO.Ports.Parity.None; SpCom.DataBits = 8; SpCom.StopBits = IO.Ports.StopBits.One; 或是定义时直接初始化 private SerialPort SpCom2 = new SpCom ("COM2", 9600,Parity.None, 8, StopBits.One); 4) 发送数据 SpCom.Write(TextSendData.Text); 5) 添加接受事件 a) 在运行时将事件与事件处理程序相关联(通过委托实现) SpCom.DataReceived += new SerialDataReceivedEventHandler(SpCom2_DataReceived); 说明: SerialDataReceivedEventHandler 委托 表示将处理 SerialPort 对象的 DataReceived 事件的方法 b) 添加事件处理程序(签名一定要一致) private void SpCom_DataReceived(object sender, SerialDataReceivedEventArgs e) 6) 读取数据 string data = SpCom .ReadExisting(); |
|