2016-09-30 81 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我不会仔细检查波特率。