如何在 QNX 操作系统中设置 USB 转串行设备以在代码中使用它open("/dev/serusb1")
?我正在使用 VMWare 来托管 QNX。如何检查 USB 适配器是否正确连接?
答案1
您需要运行的驱动程序称为 devc-serusb,一旦执行,如果硬件存在,您应该在 /dev 中看到 /dev/serusbx 设备。(其中 x 是您的设备索引)
将 USB 转串行设备连接到物理盒后,确保它已连接到正在运行的 QNX Vmware 映像,并且运行驱动程序后该设备确实显示在 /dev 中。
下一步是从命令行确认它是否正常工作。将 serusb 设备的另一端连接到发送数据的东西。然后在命令行运行此命令:
# cat /dev/serusb1
如果您没有看到任何数据传入,则可能是波特率或其他串行参数关闭了,请查看 stty 命令文档以正确设置参数。如果您以 115200 8-n-1 运行,那么您可以执行以下操作:
# stty baud=115200 < /dev/serusb1
如果您在从命令行“cat”设备时可以显示数据,那么您就可以从程序内部打开该设备并从中读取数据,就像它是一个文件一样,如下所示:
int main(int argc, char* argv[]) {
int fd=-1;
char ch;
fd = open("/dev/serusb1", O_RDONLY);
while(read(fd, ch, 1) > 0) {
printf("%c", ch);
}
}