启用UART串行端口通信的ACK / NAK握手

时间:2012-02-08 11:10:22

标签: linux serial-port

具有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);

但我得到了#34; EGAIN"每次阅读时知道我为什么这么做吗?

1 个答案:

答案 0 :(得分:1)

ACK / NACK不存在。存在的是XON / XOFF。从这里开始:

  • doc对XON / XOFF使用ACK / NACK,问题是“如何在我的串口上设置XON / XOFF”。

  • 文档是正确的,您应该做的第一件事是通过发送适当的命令启用设备中的ACK / NACK机制。要获得帮助,您需要浏览文档或提供更多信息。