在我的Ubuntu 10.10桌面上,一个带有UART-male接口的条形码阅读器通过串行端口连接。从专有的自述文档中,我知道我必须启用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);
但每次看书的时候我都会得到“伊根”。你知道我为什么这么做吗?
最佳答案
ACK/NACK不存在。存在的是。从这里开始:
文档对XON/XOFF使用ACK/NACK,而您的问题是“如何在我的串行端口上设置XON/XOFF”。
doc是正确的,您应该做的第一件事是通过发送适当的命令在设备中启用ACK/NACK机制。要获得帮助,您需要浏览文档或提供更多信息。
关于linux - 启用ACK/NAK握手以进行UART串行端口通信,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9192169/