2016-09-30 87 views
0

我在開發板上有一個Ti處理器AM335x。沒有兩個uart連接到處理器。 uart0和uart2啓用uart2,但讀取不正確

默認情況下,只有uart0被啓用,並且它是用於控制檯的。在啓用uart2之後,我將GPS連接到它,以便它輸出一些東西,如果我使用/ dev/ttyO2。但只有一些垃圾代碼顯示出來。

然後我把GPS連接到uart0,使用相同的命令cat/dev/ttyO0一切正常。 GPS輸出正常顯示。

然後我編輯我的uEnv.txt來切換我的控制檯到uart2,它的工作原理。然後我將GPS連接到uart2,我可以貓/ dev/ttyO2來獲取所有內容。但是當我將GPS連接到uart0時。垃圾代碼出現。

我沒有使用stty做tty設置,使它們都一樣,但是,我只能從連接我的控制檯的uart讀取。

我運行命令dmesg | grep tty,這是輸出

[0.000000] Kernel command line: console=ttyO2,115200n8 root=/dev/mmcblk0 rw ext4 rootwait verbose debug 
    [0.234749] 44e09000.serial: ttyO0 at MMIO 0x44e09000 (irq = 154m, base_baud = 3000000) is a OMAP UART0 
    [0.235338] 48024000.serial: ttyO2 at MMIO 0x48024000 (irq = 155m, base_baud = 3000000) is a OMAP UART2 
    [0.824084] console [ttyO2] enabled 

第一個和第四個將改變基地上我把我的控制檯。 有沒有我錯過的配置?爲什麼我只能從我把控制檯放在uart上讀取精確的數據。其他人不工作。

任何想法都會有所幫助。謝謝。

這是我如何更改我的代碼以啓用uart2。 linux compile for enable uart2

+0

絕對最小值,設置波特率。我認爲有一個工具可以做到這一點,但是你應該使用一些特殊用途的工具來處理串口,比如minicom。 – domen

+0

@domen我嘗試過stty,但仍然無法閱讀。我可能會嘗試minicom,但我認爲它不會起作用。 – dawenzi098

+0

您是否設置了** BAUDRATE **?什麼是GPS的波特率,什麼是ttyO0/2設置爲? – domen

回答

0

原來是BAUDRATE問題。

不是因爲我沒有設置正確,是因爲硬件問題。只要我將我的GPS連接到uart2。 uart2的波特率會變成9600,這就給我垃圾輸出。

如果我stty設置波特率爲115200並開始讀取。然後連接我的GPS。我以正確的格式獲得所需的一切。

仍然不知道GPS有什麼問題,但這不應該成爲這個問題的一部分。所以我會關閉這個。

謝謝你,沒有你的@domen我不會仔細檢查波特率。