http://www.javashuo.com/article/p-tgmjlcsx-bv.htmlhtml
咱用這個編寫 ,版本都無所謂哈,只要本身有就能夠,不一樣版本怎麼打開api
http://www.javashuo.com/article/p-nprpwouf-r.htmlide
C#API https://docs.microsoft.com/zh-cn/dotnet/api/?view=netframework-4.0函數
放幾個文本顯示 測試
放個下拉框,用來選擇串口號優化
各複製出來spa
把串口拖上來.net
作一個功能,軟件啓動的時候把電腦上全部的串口號顯示到3d
string[] ports = System.IO.Ports.SerialPort.GetPortNames();//獲取電腦上可用串口號
看一下控件的IDcode
comboBox1.Items.AddRange(ports);//給comboBox1添加數據 comboBox1.SelectedIndex = comboBox1.Items.Count > 0 ? 0 : -1;//若是裏面有數據,顯示第0個
若是電腦上有可用串口,會顯示
如今控制串口打開和關閉,,,,,,,改改按鈕顯示的哈,,,
讓它默認顯示打開
忘了...先設置下有可選擇的波特率
寫上經常使用的
1382400 921600 460800 256000 230400 128000 115200 76800 57600 43000 38400 19200 14400 9600
4800
1200
設置下默認顯示的
if (button1.Text == "打開")//若是按鈕顯示的是打開 { try//防止意外錯誤 { serialPort1.PortName = comboBox1.Text;//獲得comboBox1顯示的串口內容 serialPort1.BaudRate = Convert.ToInt32(comboBox2.Text);//獲得comboBox2顯示的波特率內容 serialPort1.Open();//打開串口 button1.Text = "關閉";//按鈕顯示關閉 } catch (Exception) { MessageBox.Show("打開失敗", "提示!");//對話框顯示打開失敗 } } else//要關閉串口 { try//預防串口有問題了,實際上已經關了 { serialPort1.Close();//關閉串口 } catch (Exception) { } button1.Text = "打開";//按鈕顯示打開 }
如今優化一個地方
就是串口原本鏈接着電腦,而後拔下來了,或者從新來了個串口,咱檢測下串口熱插拔,而後從新更新下顯示
https://blog.csdn.net/woshidaniu/article/details/44044093
開始上菜了哈,,
protected override void WndProc(ref Message m) { if (m.Msg == 0x0219)//設備改變 { if (m.WParam.ToInt32() == 0x8004)//usb串口拔出 { string[] ports = System.IO.Ports.SerialPort.GetPortNames();//從新獲取串口 comboBox1.Items.Clear(); comboBox1.Items.AddRange(ports); if (button1.Text == "關閉")//咱打開過一個串口 { if (!serialPort1.IsOpen)//咱打開的那個關閉了,說明拔插的是咱打開的 { button1.Text = "打開"; serialPort1.Dispose();//釋放掉原先的串口資源 comboBox1.SelectedIndex = comboBox1.Items.Count > 0 ? 0 : -1;//顯示獲取的第一個串口號 } else//熱插拔不是咱打開的那個 { comboBox1.Text = PortNameCopy;//默認顯示的是咱打開的那個串口號 } } else//沒有打開過 { comboBox1.SelectedIndex = comboBox1.Items.Count > 0 ? 0 : -1;//顯示獲取的第一個串口號 } } else if (m.WParam.ToInt32() == 0x8000)//usb串口鏈接上 { string[] ports = System.IO.Ports.SerialPort.GetPortNames();//從新獲取串口 comboBox1.Items.Clear(); comboBox1.Items.AddRange(ports); if (button1.Text == "關閉")//咱打開過一個串口 { comboBox1.Text = PortNameCopy;//默認顯示的是咱打開的那個串口號 } else { comboBox1.SelectedIndex = comboBox1.Items.Count > 0 ? 0 : -1;//顯示獲取的第一個串口號 } } } base.WndProc(ref m); }
這個是系統自帶的函數
關於那些值,,,我是本身監控的....
如今你們本身測試熱插拔哈
寫的夠多的了...放到下一節接着寫