成人免费无码不卡毛片,亚洲AⅤ无码精品一区二区三区,国产尤物精品视频,久久精品日本亚洲,欧美成人一区三区无码乱码A片,中文字日产幕码一区二区色哟哟,亞洲日韓中文字幕網AV

  • 正文
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

如何掃描出串口的詳細(xì)信息!

2024/11/19
4109
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

使用C#編程很多年了,大部分功能都是基于串口來開發(fā)的,畢竟串口也是面對(duì)下位機(jī)硬件調(diào)試中最為簡(jiǎn)便的方法。

不過,如果系統(tǒng)中有多個(gè)串口的時(shí)候,就會(huì)遇到一定的麻煩,比如我的電腦設(shè)備中就存在多個(gè)串口:

我早先時(shí)候,習(xí)慣使用IO.Ports命名空間的API來獲取端口信息,就像下面這段代碼

Int32 port_name_len = System.IO.Ports.SerialPort.GetPortNames().Length;cbBoxCom.Items.Clear();//清空下拉列表if (port_name_len != 0)//系統(tǒng)當(dāng)前存在的端口加入列表{    for(int i = 0; i < port_name_len;i++)        Trace.WriteLine(System.IO.Ports.SerialPort.GetPortNames()[i]);    foreach (string com in System.IO.Ports.SerialPort.GetPortNames())    {        cbBoxCom.Items.Add(com);    }    cbBoxCom.SelectedIndex = 0; // 選中列表中的第一個(gè)端口}else{    MessageBox.Show("沒有檢測(cè)到設(shè)備,請(qǐng)插入設(shè)備重新啟動(dòng)。");    cbBoxCom.Items.Add("no port");}

這樣獲取串口端口號(hào)的問題在于,我們只能夠獲取到COM1,COM2這樣的字符串,即便我們實(shí)現(xiàn)了動(dòng)態(tài)插入監(jiān)測(cè),最終在我們界面中的選項(xiàng)列表里,也只能展示出一堆COM口,想接收和發(fā)送信息的時(shí)候也不知道該打開哪一個(gè)。

因此,比較好的辦法是去拉去COM口的更詳細(xì)的信息,比如我們把第一張圖中的JLink CDC UART Port也拉去出來,顯示在端口列表中,這樣我們就比較容易分辨出改選用哪個(gè)端口了。

下面是具體的方法:

try{    // 定義查詢 WMI 的語句    string query = "SELECT * FROM Win32_PnPEntity WHERE Name LIKE '%(COM%'";
    // 使用 ManagementObjectSearcher 查詢?cè)O(shè)備    using (ManagementObjectSearcher searcher = new ManagementObjectSearcher(query))    {        foreach (ManagementObject obj in searcher.Get())        {            // 獲取設(shè)備描述            string name = obj["Name"]?.ToString() ?? "未知設(shè)備";            string manufacturer = obj["Manufacturer"]?.ToString() ?? "未知廠商";            cBoxComNum.Items.Add(GetComx(name));
            //Trace.WriteLine($"設(shè)備描述: {name}");            //Trace.WriteLine($"廠商: {manufacturer}");            //Trace.WriteLine(new string('-', 50));        }    }    AdjustDropDownWidth(cBoxComNum);    cBoxComNum.SelectedIndex = 0; //選中第一個(gè)    cBoxBaudrate.Items.Add(115200);    cBoxBaudrate.Items.Add(9600);}catch (Exception ex){    Trace.WriteLine($"發(fā)生錯(cuò)誤: {ex.Message}");}

從上面的代碼可以看出,我們還可以獲取到廠商信息,這樣可以進(jìn)一步對(duì)串口進(jìn)行區(qū)分,進(jìn)一步有效地區(qū)分串口,避免每次都要嘗試,或者反復(fù)插拔串口設(shè)備。

效果還可以,要想?yún)^(qū)分同一個(gè)品牌的同一個(gè)型號(hào),還需要研究研究。

相關(guān)推薦

  • 在LPC55S69上實(shí)現(xiàn)的秘鑰系統(tǒng)
    方案
    1816
    2024/07/25
  • 基于單片機(jī)proteus仿真的設(shè)計(jì)作業(yè)3個(gè)實(shí)驗(yàn)串口、并口、定時(shí)器(仿真圖、源代碼)
    方案
    1020
    2024/07/25
  • 基于單片機(jī)proteus仿真的串口和計(jì)算機(jī)通信系統(tǒng)設(shè)計(jì)(仿真圖、源代碼、講解視頻)
    方案
    1463
    2024/07/25
  • 基于單片機(jī)proteus仿真的風(fēng)光互補(bǔ)充電管理系統(tǒng)設(shè)計(jì)(AD原理圖、仿真圖、源代碼、講解視頻
    方案
    2548
    2024/07/18
  • 登錄即可解鎖
    • 海量技術(shù)文章
    • 設(shè)計(jì)資源下載
    • 產(chǎn)業(yè)鏈客戶資源
    • 寫文章/發(fā)需求
    立即登錄

    多年硬件從業(yè)經(jīng)驗(yàn),專注分享從研發(fā)到供應(yīng)鏈,再到精益制造過程中的經(jīng)驗(yàn)和感悟!

    镇远县| 平远县| 高陵县| 沈丘县| 洪江市| 通榆县| 太仆寺旗| 都安| 积石山| 达尔| 将乐县| 东乌| 易门县| 肥东县| 察雅县| 珠海市| 柳江县| 阳江市| 兴隆县| 行唐县| 班戈县| 敦化市| 无棣县| 三亚市| 湖州市| 松溪县| 临海市| 邢台市| 思南县| 双峰县| 深泽县| 江阴市| 大城县| 南充市| 分宜县| 房山区| 琼结县| 金坛市| 扬中市| 南和县| 依安县|