linux USB虛擬串列埠裝置名的修改

2021-07-04 18:16:05 字數 754 閱讀 8114

在linux的usb轉串列埠的驅動中,定義了乙個serial_table的指標陣列,這個陣列儲存每乙個註冊的usb串列埠裝置。當usb插上時,usb_serial_probe會被執行,這個函式會呼叫get_free_serial。在get_free_serial中,會遍歷整個陣列,尋找第乙個沒有被賦值的單元,將裝置的usb_serial結構的位址儲存的這個單元,同時將該陣列元素的下標賦值給usb_serial結構中port[n]的number(乙個usb裝置可以有多個port),而這個number就是最後註冊的裝置名ttyusb0\1\2\3..後面的數字。

那麼是不是我們可以給每乙個裝置指定乙個開始的number號,那麼不論先後順序裝置名都可以固定了。

下面還有乙個問題,就是怎麼在get_free_serial中判斷是什麼裝置呢?這個linux已經給我們準備好了,就是description,我們只要比較description和我們要指定的裝置是否相同就好了。這個儲存在usb_serial結構的type->description下,這個description我們是定義在裝置驅動的usb_serial_driver結構的description。如果沒有定義description,那麼將用usb_serial_driver結構中的driver->name作為description。

有了上面的知識,我們的工作就很簡單了只要在get_free_serial的開頭加上下面的**,就大功告成了。

if(memcmp(serial->type->description,"dev name ",6) ==0)

else

python虛擬串列埠 python 虛擬串列埠通訊

準備著手寫乙個串列埠工具,當前程式設計環境,並沒有辦法接好下位機平台,需要模擬出乙個串列埠,不斷傳送資訊,方便除錯串列埠工具。這兩個串列埠是互相接通的,乙個com 可以當作上位機,乙個com可以當作下位機 2.python 實現向乙個串列埠內寫資料,另乙個串列埠內接受資料 usr bin pytho...

Ubuntu下USB串列埠繫結固定的裝置名

昨天學習了ubuntu 串口號固定 作用 為什麼需要固定串口號呢?因為在ros中要讀取外設的資料,通過串列埠通訊,這就顯得十分重要了,讀取資料就必須知道該串口號,但是在linux系統中,串口號是根據接入的順序來命名的,如果不固定串口號則需要每次檢視串口號,然後做相應的修改。step1 檢視串列埠資訊...

c 藍芽虛擬串列埠 C 虛擬串列埠通訊

將主埠com8拆分成 com1和com2兩個虛擬埠 com8接收的訊息會傳遞給com1和com2 serialport spsend spsend,spreceive用虛擬串列埠連線,它們之間可以相互傳輸資料。spsend傳送資料 serialport spreceive spreceive接受資料...