我使用USB GPIO device。当它连接到PC时,它创建了一个名为“/ dev / ttyACM0”的文件。我想用termios发送数据 我跑
int fd = open("/dev/ttyACM0", O_RDWR | O_NOCTTY | O_NDELAY);
在C代码中,但它不起作用。
它应该是什么?
更新
USB设备连接到PC后,我在终端上运行dmesg
命令。它显示了设备信息,如产品,制造商,idVendor,idProduct等。
更新2
我的错误是“没有文件或目录”。所以我尝试this method寻求解决方案。我运行sudo stty crtscts -F /dev/ttyACM0
。我通过int fd = open("/dev/tty1", O_RDONLY | O_NOCTTY | O_NDELAY);
重写开放端口我重新编译并运行我的代码。新的运行时错误是“/ dev / tty1:Permission denied”
答案 0 :(得分:2)
对于"许可被拒绝"错误,您应该运行$ sudo ./exe
。我做到了,它工作得很好!
答案 1 :(得分:0)
您只是没有权限写入该设备,这就是它与sudo合作的原因
您只需将您的用户帐户添加到相应的组,tty
可能/dev/ttyACMx
(这取决于发行版)。
或者您可以使用sudo chmod 644 /dev/ttyACM0
更改该设备的权限。
您可能会发现此link有用。