windows系統和虛擬機上ubuntu系統通過虛擬串口進行通信

本文的目的是實現windows系統和虛擬機上安裝的ubuntu通過串口進行通信。為了直觀觀測串口收發數據的內容,需要在windows系統和ubuntu系統使用串口助手來進行監聽。windows系統端用的監聽工具是串口助手SSCOM,ubuntu系統端使用的串口助手是CuteCom。

ubuntu端CuteCom發送字符"1"和"2",windows端SSCOM可以接收到這兩個字符。再通過windows端SSCOM發送字符串"button_up"和"button_down",ubuntu端的CuteCom同樣可以接收到這兩個字符串。這樣就實現了windows系統和ubuntu系統的串口通信。

本例用到的虛擬機VMware版本為17.5.0,ubuntu版本為22.04.3,虛擬串口vspd版本為7.2,windows系統串口助手SSCOM版本V5.13.1,ubuntu系統串口助手為CuteCom版本為0.30.3。

本文推薦了虛擬機下載安裝、在虛擬機上安裝ubuntu系統教程的博文鏈接。vspd和SSCOM的下載安裝比較簡單,網上資料也比較多,大家可以自行搜索。

目錄

一、什么是虛擬機

二、在windows系統安裝虛擬機

三、在虛擬機上安裝Ubuntu

四、在windows系統安裝虛擬串口vspd

五、在windows系統配置vspd虛擬串口

六、在虛擬機上添加虛擬串口

1、在虛擬機上添加虛擬串口

2、關聯虛擬機和宿主機的串口

3、連接虛擬機上的虛擬串口

七、在ubuntu系統安裝配置串口助手

1、調出終端命令行窗口

2、安裝CuteCom

3、打開CuteCom

4、配置CuteCom

(1)設置串口參數

(2)打開串口使用權限

5、CuteCom功能分區

6、ubuntu串口命名規律

八、windows系統SSCOM和ubuntu系統CuteCom進行通信

九、結論


一、什么是虛擬機

虛擬機(Virtual Machine)指通過軟件模擬的具有完整硬件系統功能的、運行在一個完全隔離環境中的完整計算機系統。在實體計算機中能夠完成的工作在虛擬機中都能夠實現。在計算機中創建虛擬機時,需要將實體機的部分硬盤和內存容量作為虛擬機的硬盤和內存容量。每個虛擬機都有獨立的CMOS、硬盤和操作系統,可以像使用實體機一樣對虛擬機進行操作。

簡單的說,虛擬機就是在windows系統上安裝的一個仿真軟件,這個軟件虛擬仿真出的另外一臺獨立的電腦,windows所在的實體機也叫宿主機,虛擬的這臺電腦叫虛擬機,這臺虛擬機和真實的電腦一樣,可以安裝操作系統,也可以在操作系統里安裝軟件。本文在虛擬機里安裝的操作系統是ubuntu。

二、在windows系統安裝虛擬機

操作步驟可參考以下鏈接博文:

Vmware下載安裝教程(非常詳細)從零基礎入門到精通,看完這一篇就夠了_vmware安裝教程-CSDN博客

三、在虛擬機上安裝Ubuntu

操作步驟可參考以下鏈接博文:

Ubuntu系統下載及安裝教程_ubuntu下載-CSDN博客

注意:如果下載的ubuntu文件為iso格式,那么可以省略此博文的第2、3兩步。

四、在windows系統安裝虛擬串口vspd

操作步驟略。

五、在windows系統配置vspd虛擬串口


操作步驟可參考以下鏈接博文的第一步"配置vspd虛擬串口":

利用proteus實現串口助手和arduino Mega 2560的串口通信-CSDN博客

本例添加的串口號為COM1和COM2。

六、在虛擬機上添加虛擬串口

要想讓宿主機的windows系統和虛擬機的ubuntu系統進行串口通信,就需要在宿主機和虛擬機分別配置虛擬串口,并且需要把兩個虛擬串口關聯起來。

上邊第四步和第五步實現了在宿主機安裝配置虛擬串口,虛擬機上已經帶有虛擬串口,不用另外安裝軟件,只需要添加即可。宿主機配置的虛擬串口在虛擬機上是可以檢測到的,所以可以把虛擬機上的虛擬串口和宿主機的虛擬串口關聯起來

下邊介紹關聯兩個系統的虛擬串口的步驟:

1、在虛擬機上添加虛擬串口

虛擬機安裝完ubuntu,默認的設備里是沒有虛擬串口的,需要在ubuntu處于關機的狀態下,單擊"編輯虛擬機設置"來進行添加,如下圖所示。

在"虛擬機設置"對話框里選擇"硬件"標簽,然后單擊"添加"按鈕。

在“添加硬件向導”對話框中選擇“串行端口”,然后單擊“完成”按鈕。

2、關聯虛擬機和宿主機的串口

在“虛擬機設置”對話框,可以看到硬件列表里已經成功添加了一個串行端口,在右側“使用物理串行端口”下側的下拉列表框中選擇COM2,然后點擊“確定”按鈕。COM1和COM2是在宿主機windows系統下創建的,見上邊第五步。

此時在ubuntu界面設備列表里,也可以看到一個串行端口,鼠標移動到這里,可以顯示“正在使用端口 COM2”,關聯成功。

3、連接虛擬機上的虛擬串口

單擊“開啟此虛擬機”啟動ubuntu系統,在ubuntu界面右下角有一個任務欄,有虛擬串口的圖標,如下圖所示。

鼠標右鍵點擊這個圖標,在彈出的菜單里有“連接”或者的“斷開連接”的選項,單擊即可完成相應的操作。串口連接后圖標下側會出現一個小綠點,斷開時沒有小綠點。鼠標移動到這個圖標上,會顯示“串行端口:正在使用端口 COM2”

七、在ubuntu系統安裝配置串口助手

本例安裝的串口助手為CuteCom,安裝需要在終端命令窗口來操作。

1、調出終端命令行窗口

打開終端命令行窗口的操作步驟:單擊“顯示應用程序”圖標->單擊“終端”圖標即可。

調出終端命令行窗口,如下圖所示。

2、安裝CuteCom

在命令行輸入:sudo apt-get install cutecom

安裝過程如下圖所示。

安裝完成后,單擊“顯示應用程序”圖標->應用程序最后一項就是CuteCom,單擊“終端”圖標即可打開這個軟件。應用程序圖標比較多,一頁放不下,可以上下滾動滾輪進行翻頁

3、打開CuteCom

CuteCom打開后的界面如下圖所示。

4、配置CuteCom

(1)設置串口參數

在Device選擇/dev/ttyS0,然后單擊“Settings”按鈕。

在Settings設置界面,設置Baudrate(波特率)為9600,然后單擊“Open”按鈕,連接串口。

(2)打開串口使用權限

如果單擊“Open”后出現下圖所示報錯信息,“Permission denied”意思是ttyS0串口未授權,所以需要在終端命令行進行授權。

授權的操作步驟:

在終端命令行輸入:sudo chmod 777 /dev/ttyS0,然后回車。這行命令的作用是開放串口ttyS0的使用權限。

執行命令前需要輸入用戶登錄密碼,然后回車即可完成設置。注意,此時輸入密碼時不顯示輸入內容,輸完密碼后直接回車即可。

完成串口授權后,再單擊cutecom窗口的"open"按鈕,就可以打開ttyS0串口了。

5、CuteCom功能分區

CuteCom界面如下圖所示,在"Input"后邊的編輯框輸入要發送的內容,然后回車,即可完成發送。發送的內容在"Input"上側的文本框顯示,"Input"下側的文本框用來顯示接收到的內容。

6、ubuntu串口命名規律

本文在設備里只添加了一個虛擬串口,所以Device里只有一個ttyS0,如果添加了多個虛擬串口,那命名有什么樣的規律呢?ubuntu串口的命名規律為:ttyS0,ttyS1,ttyS2......,在設備列表中名稱對應為:串行端口,串行端口2,串行端口3......,如下圖所示。

八、windows系統SSCOM和ubuntu系統CuteCom進行通信

windows系統SSCOM串口助手端口號設置為COM1,波特率也設置為9600,然后單擊“打開串口”按鈕。

在CuteCom的Input輸入框內輸入字符“1”,然后回車,可以看到在SSCOM的接收框內也顯示收到了字符“1”。

在CuteCom的Input輸入框內輸入字符“2”,然后回車,可以看到在SSCOM的接收框內也顯示收到了字符“2”。

在SSCOM的發送框內輸入字符串“button_up”,然后回車,可以看到在CuteCom的接收框內也顯示收到了字符串“button_up”。

在SSCOM的發送框內輸入字符串“button_down”,然后回車,可以看到在CuteCom的接收框內也顯示收到了字符串“button_down”。

九、結論

通過以上操作,可以看到在宿主機系統上安裝的虛擬串口,能夠為宿主機上安裝的虛擬機所共用,因此虛擬機上安裝的ubuntu系統就可以通過這些虛擬串口實現與windows系統的通信。

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

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

相關文章

OpenCL學習筆記(一)開發環境搭建(win10+vs2019)

前言 異構編程開發,在高性能編程中有重要的,筆者本次只簡單介紹下,如何搭建簡單的開發環境,可以供有需要的小伙伴們開發測試使用 一、獲取opencl的sdk庫 1.使用cuda庫 若本機有Nvidia的顯卡,在安裝cuda庫后&#x…

如何提高大模型在超長上下文的表現?Claude實驗表明加一句prompt立即提升效果~

本文來自DataLearnerAI官方網站:如何提高大模型在超長上下文的表現?Claude實驗表明加一句prompt立即提升效果~ | 數據學習者官方網站(Datalearner)https://www.datalearner.com/blog/1051701947131881 Claude 2.1版本的模型上下文長度最高拓展到200K&am…

【Flink系列四】Window及Watermark

3.1、window 在 Flink 中 Window 可以將無限流切分成有限流,是處理有限流的核心組件,現在 Flink 中 Window 可以是時間驅動的(Time Window),也可以是數據驅動的(Count Window)。 Flink中的窗口…

c jpeg YUV圖片幀分割成 8*8 塊 ,與逆向把8*8還原為幀

1. 正向分割為若干8*8 塊 下面的程序為通用程序&#xff0c;可以分割任意塊 #include <stdlib.h> #include <string.h> #include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <stdlib.h>…

如果微軟20年前開發.net core,JAVA會不會和IE一樣倒下了

可以跨平臺&#xff0c;大量類庫&#xff0c;微軟親自操刀&#xff0c;性能一流&#xff0c;因為沒有做跨平臺&#xff0c;.NET被 python,javascript等搶了一半以上市場。 如果微軟早早的推出類似.net core這樣的跨平臺語言&#xff0c;.net程序猿還會出在這樣的尷尬局面嗎眾所…

Java基礎-開發流程以及HelloWorld程序

目錄 1. Java的開發流程2. HelloWorld 1. Java的開發流程 開發Java程序&#xff0c;需要三個步驟&#xff1a;編寫代碼&#xff0c;編譯代碼&#xff0c;運行代碼 2. HelloWorld 編寫代碼 public class HelloWorld {public static void main(String[] args) {System.out.pri…

Ribbon 饑餓加載

Ribbon默認是采用懶加載&#xff0c;即第一次訪問時才會去創建LoadBalanceClient&#xff0c;請求時間會很長而饑餓加載則會在項目啟動時創建&#xff0c;降低第一次訪問的耗時&#xff0c;通過下面配置開啟饑餓加載: 一、懶加載 Ribbon 默認為懶加載即在首次啟動Application…

代碼隨想錄二刷 |二叉樹 | 二叉樹的層序遍歷

代碼隨想錄二刷 &#xff5c;二叉樹 &#xff5c; 二叉樹的層序遍歷 題目描述解題思路代碼實現 題目描述 102.二叉樹的層序遍歷 給你二叉樹的根節點 root &#xff0c;返回其節點值的 層序遍歷 。 &#xff08;即逐層地&#xff0c;從左到右訪問所有節點&#xff09;。 示例…

Flask 最佳實踐(一)

Flask是一個輕量級而強大的Python Web框架&#xff0c;它的簡潔性和靈活性使其成為許多開發者的首選。然而&#xff0c;為了確保項目的可維護性和可擴展性&#xff0c;我們需要遵循一些最佳實踐。本文將探討Flask中一些關鍵的最佳實踐。 1. 項目結構 構建一個清晰的項目結構是…

Java實現Socket聊天室

一、網絡編程是什么&#xff1f; 在網絡通信協議下&#xff0c;不同計算機上運行的程序&#xff0c;進行數據傳輸。 應用場景&#xff1a;即時通訊、網游對戰、金融證券、國際貿易、郵件、等等。 不管是什么場景&#xff0c;都是計算機與計算機之間通過網絡進行數據傳輸。 …

軟件測試之接口測試自動化(詳解版)

本著以和大家交流如何實現高效的接口測試為出發點&#xff0c;本文包含了我在接口測試領域的一些方法和心得&#xff0c;希望大家一起討論和分享&#xff0c;內容包括但不僅限于&#xff1a; 服務端接口測試介紹接口測試自動化介紹接口測試自動化實踐關于接口測試自動化的思考…

質量工程化,交付快速化

質量和速度之間權衡讓人很難取舍&#xff0c;而通過推進質量工程&#xff0c;以系統化的方式識別和優化系統痛點&#xff0c;可以幫助團隊構建既快又好的精益軟件生產系統。原文: Quality Engineered, Speed Delivered 所有人都想要更快的速度。 但需要解決復雜問題: 權衡質量會…

Kotlin(十四) 擴展函數和運算符重載

目錄 擴展函數 語法結構 代碼示例 運算符重載 語法結構 一元操作符 二元操作符 數值類型操作符 等于和不等于操作符 比較操作符 調用操作符 擴展函數 語法結構 對于擴張函數的語法結構其實很簡單&#xff0c;你想在那個類中添加擴張函數&#xff0c;那么你就用該類…

6. Zigzag Conversion

按照下標找規律注意leetcode的運行輸出&#xff0c;如果其中一組用例出現死循環&#xff0c;輸出結果會在一個文件&#xff0c;即部分測試用例正確&#xff0c;部分錯誤且出現死循環&#xff0c;則需辨別輸出結果屬于哪一份測試用例 class Solution { public:string convert(s…

(二)五種最新算法(SWO、COA、LSO、GRO、LO)求解無人機路徑規劃MATLAB

一、五種算法&#xff08;SWO、COA、LSO、GRO、LO&#xff09;簡介 1、蜘蛛蜂優化算法SWO 蜘蛛蜂優化算法&#xff08;Spider wasp optimizer&#xff0c;SWO&#xff09;由Mohamed Abdel-Basset等人于2023年提出&#xff0c;該算法模型雌性蜘蛛蜂的狩獵、筑巢和交配行為&…

w3school學習筆記3(NumPy)

系列文章目錄 文章目錄 系列文章目錄前言一、NumPy簡介二、NumPy入門三、NumPy創建四、NumPy數組索引五、NumPy數組裁切六、NumPy數據類型七、NumPy副本/視圖八、NumPy數據形狀九、NumPy數組重塑十、NumPy數組迭代總結 前言 一、NumPy簡介 1、什么是Numpy&#xff1f; NumPy是…

線上盲盒小程序,開啟互聯網盲盒時代

近年來&#xff0c;盲盒經濟在國內非常火爆&#xff0c;各類盲盒品牌層出不窮&#xff0c;深受國內外年輕人、消費者的喜愛。 目前&#xff0c;根據數據顯示&#xff0c;盲盒市場不僅在線下異常火熱&#xff0c;線上盲盒也是成為了大眾的新選擇。各類電商平臺中盲盒的成交額更…

Esxi7Esxi8設置VMFSL虛擬閃存的大小

Esxi7Esxi8設置VMFSL虛擬閃存的大小 ESXi7,8 默認安裝會分配一個 VMFSL(VMFS-L)(Local VMFS)很大空間(120G), 感覺很浪費, 實際給 8G 就可以了, 最少 6G , 經實驗,給2G沒法安裝 . Esxi7是虛擬閃存的 修改的方法是: 在安裝時修改 設置 autoPartitionOSDataSize8192 在cdromBoo…

快捷切換raw頁面到repo頁面-Raw2Repo插件

Raw2Repo By Rick &#x1f4d6;快捷切換代碼托管平臺raw頁面到repo頁面 &#x1f517;github鏈接 https://github.com/rickhqh/Raw2Repo ?Features 功能&#xff1a; ?單擊 Raw2Repo 插件按鈕&#xff0c;即可跳轉到相應的代碼倉庫頁面。?支持 GitHub、Gitee、GitCode …

spring boot整合mybatis進行部門管理管理的增刪改查

部門列表查詢&#xff1a; 功能實現&#xff1a; 需求&#xff1a;查詢數據庫表中的所有部門數據&#xff0c;展示在頁面上。 準備工作&#xff1a; 準備數據庫表dept&#xff08;部門表&#xff09;&#xff0c;實體類Dept。在項目中引入mybatis的起步依賴&#xff0c;mysql的…