c# 串口 开发
在網上查了很多關于串口的知識。后來才發現原來c#里含有對串口開發的控件,害的我白忙活了半天。看來學習方法很重要....首先在窗體添加一個serialPort1控件。沒有的去com組建里找出來。
??????????????? serialPort1.PortName;// 設置串口名稱如“COM1”
??????????????? serialPort1.BaudRate;//設置串口波特率
??????????????? serialPort1.Parity;//奇偶校驗檢查協議
??????????????? serialPort1.ReadTimeout;//讀取操作超時
??????????????? serialPort1.WriteTimeout;//寫入操作超時
serialPort1.Open();//打開串口
serialPort1.Close();//關閉串口
???????????? byte[] data = Encoding.Unicode.GetBytes("9600");
??????????? string str = Convert.ToBase64String(data);
??????????? serialPort1.WriteLine(str); //寫入數據
//串口接收數據,本函數默認串口已經打開
??????? public void serialReceive(SerialPort serialPort1)
??????? {
??????????? string ss = "";
??????????? byte firstByte = Convert.ToByte(serialPort1.ReadByte());
??????????? int bytesRead = serialPort1.BytesToRead;
??????????? byte[] bytesData = new byte[bytesRead + 1];
??????????? bytesData[0] = firstByte;
??????????? for (int i = 1; i <= bytesRead; i++)
??????????? {
??????????????? bytesData[i] = Convert.ToByte(serialPort1.ReadByte());
??????????????? ss = ss + bytesData[i].ToString();
??????????? }
??????????? textBox2.Text = ss;
??????????????? //textBox2.Text = serialPort1.ReadLine();
??????? }
??????? //串口發送數據,本函數默認串口已經打開
??????? public void serialSend(SerialPort serialPort1,string sendString)
??????? {
??????????? //byte[] sendBytes = Encoding.Unicode.GetBytes(sendString);
??????????? //string send64String = Convert.ToBase64String(sendBytes);
??????????? if (serialPort1.IsOpen)
??????????? {
??????????????? byte[] data = Encoding.Unicode.GetBytes("9600");
??????????????? serialPort1.Write(data, 0, data.Length);
??????????????? //serialPort1.WriteLine(sendString);
??????????? }
??????????? else
??????????? {
??????????????? MessageBox.Show("請先打開串口!");
??????????? }
??????? }
轉載于:https://www.cnblogs.com/gllgsoft/archive/2010/07/05/1771557.html
總結
- 上一篇: 31 天重构学习笔记29. 去除中间人对
- 下一篇: c# char unsigned_dll