【发布时间】:2012-02-08 11:10:21
【问题描述】:
具有 UART 公接口的条形码阅读器通过我的 Ubuntu 10.10 桌面上的串行端口连接。从专有的自述文件中,我了解到我必须启用 ACK/NAK 握手,以便从设备中获取我发送的命令的 ACK 或 NAK。我不知道如何在Linux环境中启用那些使用C串口编程的人。
有人可以解释一下吗?
更新:
执行以下操作以启用软件握手 -
system ("stty ixon -ixoff -F /dev/tty");
bzero (shcmd, 64);
sprintf (shcmd, "stty ixon -ixoff -F %s", UART_DEVICE);
system (shcmd);
设置速度 -
system("stty speed 9600");
bzero (shcmd, 64);
sprintf (shcmd, "stty speed 9600 -F %s", UART_DEVICE);
system (shcmd);
写了一条命令 -
unsigned char req_rev[6] = {0x05,0xA3,0x04,0x00,0xFF,0x55};
n = write(fd, req_rev, 6);
从设备读取 -
int n = read(fd, result, 254);
但我每次阅读时都得到“EGAIN”。知道我为什么会这样吗?
【问题讨论】:
标签: linux serial-port