【问题标题】:Enable ACK/NAK handshaking for UART serial port communication为 UART 串​​口通信启用 ACK/NAK 握手
【发布时间】: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


    【解决方案1】:

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

    • 文档使用 ACK/NACK 表示 XON/XOFF,而您的问题是“如何在我的串行端口上设置 XON/XOFF”。

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

    【讨论】:

    • 感谢您的回答。让我朝着那个方向前进。
    猜你喜欢
    • 1970-01-01
    • 2012-07-02
    • 1970-01-01
    • 1970-01-01
    • 2021-07-28
    • 2021-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多