在Ubuntu上将数据发送到USB GPIO设备

时间:2014-10-27 20:37:39

标签: c usb driver linux-device-driver gpio

我使用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”

2 个答案:

答案 0 :(得分:2)

对于"许可被拒绝"错误,您应该运行$ sudo ./exe。我做到了,它工作得很好!

答案 1 :(得分:0)

您只是没有权限写入该设备,这就是它与sudo合作的原因 您只需将您的用户帐户添加到相应的组,tty可能/dev/ttyACMx(这取决于发行版)。

或者您可以使用sudo chmod 644 /dev/ttyACM0更改该设备的权限。

您可能会发现此link有用。