8-ESP8266 SDK開發基礎入門篇--編寫串口上位機軟件

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);
        }

 

 

 這個是系統自帶的函數

關於那些值,,,我是本身監控的....

 

如今你們本身測試熱插拔哈

 

寫的夠多的了...放到下一節接着寫

 

http://www.javashuo.com/article/p-abwyufaz-e.html

相關文章
相關標籤/搜索