第五節:基于Winform框架的串口助手小項目---串口收發《C#編程》

“路漫漫其修遠兮,吾將上下而求索” , -----------------------WHAPPY

目標任務:

1 從本地設備列表獲取串口。

RegistryKey keyCom = Registry.LocalMachine.OpenSubKey(@"Hardware\DeviceMap\SerialComm");

RegistryKey?是.NET 框架中用于表示注冊表項的類,通過它可以對注冊表進行讀取、寫入等操作。

?

Registry.LocalMachine?表示要訪問的注冊表根項為?HKEY_LOCAL_MACHINE,它包含了計算機的系統配置信息,適用于所有用戶。

?

.OpenSubKey?是?RegistryKey?類的一個方法,用于打開指定路徑的子項。這里傳入的參數?@"Hardware\DeviceMap\SerialComm"?是一個字符串,表示注冊表中的路徑,該路徑下存儲著系統中已安裝的串口設備的相關映射信息。

?

整行代碼的功能是嘗試打開?HKEY_LOCAL_MACHINE\Hardware\DeviceMap\SerialComm?這個注冊表子項,并將表示該子項的?RegistryKey?對象賦值給?keyCom?變量,后續可通過這個變量來讀取系統中已配置的串口信息,比如獲取可用的串口號等。

foreach (var sValue in sSubKeys)
{string portName = (string)keyCom.GetValue(sValue);port_cbb.Items.Add(portName);
}

?
  1. foreach?循環
    foreach (var sValue in sSubKeys)?這行代碼開啟了一個?foreach?循環。sSubKeys?應該是一個集合(例如?IEnumerable<string>?類型的集合等),foreach?循環會依次遍歷?sSubKeys?集合中的每一個元素,并將當前遍歷到的元素賦值給?sValue?變量。這里使用?var?關鍵字讓編譯器自動推斷?sValue?的類型,在這種上下文中,sValue?很可能是?string?類型。

  2. 獲取注冊表值
    string portName = (string)keyCom.GetValue(sValue);?這行代碼從注冊表項對象?keyCom(之前通過?Registry.LocalMachine.OpenSubKey(@"Hardware\DeviceMap\SerialComm");?打開的注冊表項)中獲取值。GetValue?方法接受一個參數?sValue,這個參數應該是注冊表項中的某個值的名稱(鍵名)。GetValue?方法返回對應的值,由于從注冊表中獲取的值類型可能是?object?類型,這里通過?(string)?進行強制類型轉換,將獲取到的值轉換為?string?類型,并賦值給?portName?變量。

  3. 添加到控件項集合
    port_cbb.Items.Add(portName);?這行代碼將獲取到的串口名稱?portName?添加到名為?port_cbb?的控件(很可能是?ComboBox?控件)的?Items?集合中。這樣,在界面上顯示?port_cbb?控件時,就會包含從注冊表中讀取到的串口名稱選項,用戶可以從這些選項中選擇需要的串口。

?

總的來說,這段代碼的作用是遍歷注冊表項中某個集合(sSubKeys)里的鍵名,獲取對應鍵的值(串口名稱),并將這些串口名稱添加到一個控件(port_cbb)的選項列表中,以便用戶在界面上選擇串口。

RegistryKey keyCom = Registry.LocalMachine.OpenSubKey(@"Hardware\DeviceMap\SerialComm");
string[] sSubKeys = keyCom.GetValueNames();
Port_cbb.Items.Clear();foreach (string sValue in sSubKeys)
{string portName = (string)keyCom.GetValue(sValue);Port_cbb.Items.Add(portName);
}

2 串口數據的發送。

3 串口數據的接收。

4.現象

未完待續》》》》》》》》》》》》》》

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/71302.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/71302.shtml
英文地址,請注明出處:http://en.pswp.cn/web/71302.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

專題二最大連續1的個數|||

1.題目 題目分析&#xff1a; 給一個數字k&#xff0c;可以把數組里的0改成1&#xff0c;但是只能改k次&#xff0c;然后該變得到的數組能找到最長的子串且都是1。 2.算法原理 這里不用真的把0變成1&#xff0c;因為改了比較麻煩&#xff0c;下次用就要改回成1&#xff0c;這…

25年第四本【認知覺醒】

《認知覺醒》&#xff1a;一場與大腦的深度談判 在信息爆炸的焦慮時代&#xff0c;我們像被拋入湍流的溺水者&#xff0c;拼命抓取各種自我提升的浮木&#xff0c;卻在知識的漩渦中越陷越深。這不是一本簡單的成功學指南&#xff0c;而是一場關于人類認知系統的深度對話&#…

甘特圖開發代碼(測試版)

場景&#xff1a;要實現的功能就是單行數據能左右拖動。 流程五個&#xff1a;ABCDE。&#xff08;對應&#xff1a;Charter開發、概念和計劃、初樣開發、正樣開發、驗證&#xff09; 1、A有開始時間&#xff0c;結束時間。B的開始時間必須是A的結束時間&#xff08;相等或者…

服務器配置-從0到分析4:ssh免密登入

該部分涉及到公鑰、私鑰等部分knowledge&#xff0c;本人僅作嘗試 若將本地機器 SSH Key 的公鑰放到遠程主機&#xff0c;就能無需密碼直接遠程登錄遠程主機 1&#xff0c;在客戶端生成 ssh 公私鑰&#xff1a; 也就是我們本地機器&#xff0c;windows電腦 一路回車即可&am…

使用easyocr、PyPDF2對圖像及PDF文檔進行識別

一、概述 本 Python 腳本的主要功能是對當前目錄及其子目錄下的圖片和 PDF 文件進行光學字符識別&#xff08;OCR&#xff09;處理。它使用 easyocr 庫處理圖片中的文字&#xff0c;使用 PyPDF2 庫提取 PDF 文件中的文本&#xff0c;并將處理結果保存為文本文件。同時&#xff…

2000-2020年各省地方財政一般預算支出數據

2000-2020年各省地方財政一般預算支出數據 1、時間&#xff1a;2000-2020年 2、來源&#xff1a;國家統計局、統計年鑒 3、指標;行政區劃代碼、地區、年份、地方財政一般預算支出(億元) 4、范圍&#xff1a;31省 5、指標解釋&#xff1a;一般預算支出是國家對集中的預算收…

k8s 中各種發布方式介紹以及對比

前言 在 Kubernetes&#xff08;K8s&#xff09;中&#xff0c;不同的發布策略&#xff08;如金絲雀發布、灰度發布、藍綠發布等&#xff09;各有其適用場景和優缺點。 1. 滾動發布&#xff08;Rolling Update&#xff09; 核心原理&#xff1a;逐步替換舊版本 Pod 為新版本&…

力扣HOT100之哈希:1. 兩數之和

這道題之前刷代碼隨想錄的時候已經刷過好幾遍了&#xff0c;看到就直接秒了。這道題主要是通過unordered_map<int, int>來建立哈希表&#xff0c;其中鍵用來保存向量中的元素&#xff0c;而對應的值則為元素的下標。遍歷整個向量&#xff0c;當遍歷到nums[i]時&#xff0…

kakfa-3:ISR機制、HWLEO、生產者、消費者、核心參數負載均衡

1. kafka內核原理 1.1 ISR機制 光是依靠多副本機制能保證Kafka的高可用性&#xff0c;但是能保證數據不丟失嗎&#xff1f;不行&#xff0c;因為如果leader宕機&#xff0c;但是leader的數據還沒同步到follower上去&#xff0c;此時即使選舉了follower作為新的leader&#xff…

從小米汽車召回看智駕“命門”:智能化時代 — 時間就是安全

2025年1月&#xff0c;小米因車輛“授時同步異常”召回3萬余輛小米SU7&#xff0c;成為其造車歷程中的首個重大安全事件。 從小米SU7召回事件剖析&#xff0c;授時同步何以成為智能駕駛的命門&#xff1f; 2024年11月&#xff0c;多名車主反饋SU7標準版的智能泊車輔助功能出現…

FastGPT 引申:如何基于 LLM 判斷知識庫的好壞

文章目錄 如何基于 LLM 判斷知識庫的好壞方法概述示例 Prompt聲明抽取器 Prompt聲明檢查器 Prompt 判斷機制總結 下面介紹如何基于 LLM 判斷知識庫的好壞&#xff0c;并展示了如何利用聲明抽取器和聲明檢查器這兩個 prompt 構建評價體系。 如何基于 LLM 判斷知識庫的好壞 在知…

【數據挖掘】NumPy的索引與切片(Indexing Slicing)

&#x1f4cc; NumPy ndarray 的索引與切片&#xff08;Indexing & Slicing&#xff09; NumPy 提供 靈活高效 的索引與切片方式&#xff0c;支持 一維、二維、多維數組 的訪問與操作。 1?? 索引&#xff08;Indexing&#xff09; 索引用于訪問 NumPy 數組中的 單個元素…

AI工具:deepseek+階躍視頻,生成好玩的視頻

目標 測試一下&#xff0c;當下好玩的AI工具&#xff0c;緩解一下緊張的AI學習~ 用deepseek生成視頻制作提示詞&#xff0c;讓后把提示詞給階躍視頻生成&#xff0c;一個視頻就生成了。具體操作如下。 操作過程 在階躍官網&#xff0c;階躍AI&#xff0c;注冊一個賬號&…

利用矩陣相乘手動實現卷積操作

卷積&#xff08;Convolution&#xff09; 是信號處理和圖像處理中的一種重要操作&#xff0c;廣泛應用于深度學習&#xff08;尤其是卷積神經網絡&#xff0c;CNN&#xff09;中。它的核心思想是通過一個卷積核&#xff08;Kernel&#xff09; 或 濾波器&#xff08;Filter&am…

前端面試場景題葵花寶典之四

87.場景面試之大數運算&#xff1a;超過js中number最大值的數怎么處理 在 JavaScript 中&#xff0c;Number.MAX_SAFE_INTEGER&#xff08;即 2^53 - 1&#xff0c;即 9007199254740991&#xff09;是能被安全表示的最大整數。超過此值時&#xff0c;普通的 Number 類型會出現…

Linux中死鎖問題的探討

在 Linux 中&#xff0c;死鎖&#xff08;Deadlock&#xff09; 是指多個進程或線程因為競爭資源而相互等待&#xff0c;導致所有相關進程或線程都無法繼續執行的狀態。死鎖是一種嚴重的系統問題&#xff0c;會導致系統資源浪費&#xff0c;甚至系統崩潰。 死鎖的定義 死鎖是指…

【基于Mesh組網的UWB技術討論】

基于Mesh組網的UWB技術討論 Mesh 組網無線Mesh與無線中繼的區別 基于Mesh拓撲的UWB技術可行性星型拓撲 / Mesh拓撲的UWB技術比較 Mesh 組網 Mesh(網格)是一種無中心、自組織的高度業務協同的網絡。通常分為無線Mesh和有線Mesh&#xff0c;但在實際應用場景&#xff0c;有線Mes…

Python Cookbook-3.1 計算昨天和明天的日期

任務 獲得今天的日期&#xff0c;并以此計算昨天和明天的日期。 解決方案 方案一&#xff1a; 無論何時遇到有關“時間變化”或者“時間差”的問題&#xff0c;先考慮datetime包: import datetime today datetime.date.today() yesterday today - datetime.timedelta(day…

USB 模塊 全面解析(二)

本文是我整理的一些 USB 的學習心得&#xff0c;希望能對大家有所幫助。 文章目錄 前言&#x1f34d;USB 協議層數據格式&#x1f347;包格式&#x1f353; PID 域&#x1f353; 令牌包&#x1f353; 數據包&#x1f353; 握手包 &#x1f347;傳輸類型&#x1f353; 批量傳輸&…

從基礎到實踐(十):MOS管的全面解析與實際應用

MOS管&#xff08;金屬-氧化物半導體場效應晶體管&#xff09;是現代電子技術的基石&#xff0c;憑借高輸入阻抗、低功耗和易集成特性&#xff0c;成為數字電路、電源管理和信號處理的核心元件。從微處理器到新能源汽車電驅系統&#xff0c;其高效開關與放大功能支撐了計算機、…