不用串列埠線除錯串列埠通訊程式

2021-06-16 04:06:05 字數 979 閱讀 6213

linux + qt embedded寫串列埠程式

在辦公室都是用串列埠連線兩台電腦來除錯串列埠程式。因為電腦多,用一根線連起來,這邊發那邊收,收的一邊xp裡用串列埠除錯助手,很方便。

有時候手頭沒有兩台電腦可以連,或者兩台中有一台筆記本,只有usb轉串列埠線,我的筆記本裡只有linux,反正怎麼都不方便。於是,用過一些變通的方法:

1.單機的時候。用ln -s output /dev/ttysac2 這是以前只有一台筆記本的時候,把程式裡用到的串列埠連到乙個檔案,寫資料進去之後,再用xxd開啟這個檔案,看16進製制輸出。缺點是看結果慢一拍,好處是最簡單。xxd是linux命令列檢視16進製制的工具,可以在vi中呼叫,也可以直接在命令列使用。

2.兩台機器,台式電腦向筆記本傳送資料。那時候還不知道下面說的qtserialport-terminal。筆記本開啟乙個終端,用cat /dev/ttyusb0|xxd輸出接收到的資料,也是可以直接看到16進製制輸出的。但是似乎預設有快取,不是每次發的資料都能及時顯示出來。

最後就是今天發現的方法。在virtualbox裡裝的xp,設定裡enable serialport,選擇host device,/dev/ttys0。但是啟動後找不到串列埠,自己手動新增乙個,irq4,3f8,出來的是com3。(顯示com1被使用,不知道原因)然後開啟串列埠除錯助手,在宿主機linux裡執行程式,傳送資料到/dev/ttys0;xp裡串列埠助手就可以收到資料了。這樣也不需要連線,一台機器就可以除錯,感覺也是個不錯的辦法。

(注:這個方法只在我家裡的台式電腦上有效,另外幾台主機都不行。查了半天資料,確定應該是我家裡主機的主機板,是從2手市場淘來的,可能串列埠有短接所致。正常的主機板不會互通,要把串列埠的2,3引腳短接才可以實現本機自身的收發 )

另外,在archlinux的aur裡,有乙個用qt和qextserialport和多執行緒方式實現的qtserialport-terminal,和串列埠助手差不多。但是沒有16進製制顯示,預設不能用ttyusb,但是可以選擇很多種字元編碼。等有時間了,可以改一下,加上16進製制和usb串列埠。

直連串列埠線 交叉串列埠線

問題1 何時用交叉,何時用直連?標準串列埠引腳2是rx,引腳3是tx,即九針串列埠的2號引腳連線的是主控晶元的rxd引腳,3號引腳連線的是主控晶元的txd引腳 如果微控制器開發板的串列埠和電腦串列埠都是標準串列埠,則倆串列埠應該用交叉線連線。但現實生活中直連線居多 可能是直連線生產起來沒交叉線麻煩吧...

直連串列埠線 交叉串列埠線

問題1 何時用交叉,何時用直連?標準串列埠引腳2是rx,引腳3是tx,即九針串列埠的2號引腳連線的是主控晶元的rxd引腳,3號引腳連線的是主控晶元的txd引腳 如果微控制器開發板的串列埠和電腦串列埠都是標準串列埠,則倆串列埠應該用交叉線連線。但現實生活中直連線居多 可能是直連線生產起來沒交叉線麻煩吧...

直通串列埠線和交叉串列埠線

以前一直用gt2440開發板提供的串列埠線連線電腦。最近做 s5pv210 的板子時也想做 2440 的串列埠線,連線好後串列埠一直沒有輸出,以為是串列埠線不行,借了朋友的試一下,還是不行。在後來和朋友交談的過程中,得知 串列埠線有直通和交叉之分。感覺 210的板子串列埠沒有輸出很可能是沒有區分直通...