- 論壇徽章:
- 0
|
1,問題概述: 兩塊ARM板子通過串口線相連,雙方無法正常通訊,無法獲取到對方發(fā)過來的數(shù)據(jù)。
2,詳細(xì)描述:
目前手上有兩塊ARM板子,雙方通過交叉串口線相連,示意圖如下。
uart.JPG (27.28 KB, 下載次數(shù): 103)
下載附件
2014-04-21 14:18 上傳
軟件的設(shè)定完全從百度而來,沒有任何特殊情況,也就是 open, 然后設(shè)定 115200 8N1等。如下所示。
newtio.c_cflag = CLOCAL | CREAD;
newtio.c_iflag = IGNPAR;
// 115200
newtio.c_cflag |= CS8; // 8
newtio.c_cflag &= ~CSTOPB; // 1
newtio.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG); /*Input*/
// Raw mode, 適用于數(shù)據(jù)通訊而非終端
newtio.c_oflag &= ~OPOST; /*Output*/
但是在兩個板子上分別運(yùn)行read UART和write UART的程序(其他設(shè)定一樣),總是無法獲取到對方write來的數(shù)據(jù)。所以請教一下,兩個板子的串口數(shù)據(jù)通訊是否還需要一些其他的設(shè)置呢?
3,注意,串口線和kernel驅(qū)動是好的,因為有如下兩個現(xiàn)象:
A: ARM板#1(或#2)的UART口通過串口線連接 到PC的COM口時,PC端通過串口工具(比如minicom)可以和ARM板子UART口進(jìn)行非常準(zhǔn)確地通信。
B: ARM板#1和#2通過串口線相連時,如果我對板子#2的Uboot中進(jìn)行console設(shè)定,比如console=ttyS0, 1152008N,此時板子#2的啟動打印信息可以被板子#1這邊讀取到。
如果各位有遇到過類似的情況,還請不吝賜教,非常感激 |
|