具有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"每次阅读时知道我为什么这么做吗?
答案 0 :(得分:1)
ACK / NACK不存在。存在的是XON / XOFF。从这里开始:
doc对XON / XOFF使用ACK / NACK,问题是“如何在我的串口上设置XON / XOFF”。
文档是正确的,您应该做的第一件事是通过发送适当的命令启用设备中的ACK / NACK机制。要获得帮助,您需要浏览文档或提供更多信息。