- 论坛徽章:
- 0
|
1,问题概述: 两块ARM板子通过串口线相连,双方无法正常通讯,无法获取到对方发过来的数据。
2,详细描述:
目前手上有两块ARM板子,双方通过交叉串口线相连,示意图如下。
软件的设定完全从百度而来,没有任何特殊情况,也就是 open, 然后设定 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, 适用于数据通讯而非终端
newtio.c_oflag &= ~OPOST; /*Output*/
但是在两个板子上分别运行read UART和write UART的程序(其他设定一样),总是无法获取到对方write来的数据。所以请教一下,两个板子的串口数据通讯是否还需要一些其他的设置呢?
3,注意,串口线和kernel驱动是好的,因为有如下两个现象:
A: ARM板#1(或#2)的UART口通过串口线连接 到PC的COM口时,PC端通过串口工具(比如minicom)可以和ARM板子UART口进行非常准确地通信。
B: ARM板#1和#2通过串口线相连时,如果我对板子#2的Uboot中进行console设定,比如console=ttyS0, 1152008N,此时板子#2的启动打印信息可以被板子#1这边读取到。
如果各位有遇到过类似的情况,还请不吝赐教,非常感激 |
|