我在 Ubuntu 中有一个 NUC。我想用c写一个串口发送和接收消息的程序。
设备是/dev/ttyUSB0
。
使用linux命令echo "message">/dev/ttyUSB0
并使用minicom
得到结果是成功的。
但是用c程序打开设备失败,fd
总是返回-1
int fd;
fd = open ("/dev/ttyUSB0", O_RDWR);
然后我尝试在 debian 中使用 raspbian pi,并运行相同的程序。它可以打开设备。
NUC 中的 Ubuntu 平台是否缺少任何设置?谢谢你非常匹配。
更新:
我打印出错误信息:open() failed with error [Permission denied]
,
然后我尝试使用 sudo
来运行 exe 文件,然后我可以得到 usb 设备
这是当前文件的详细信息
-rwxrwxr-x 1 u u 9048 Aug 22 19:15 uart
-rw-rw-r-- 1 u u 1424 Aug 22 19:15 uart.c
除了我用chown
修改文件的权限,还有别的方法吗?
最佳答案
sudo usermod -a -G dialout <User>
/dev/ttyxy 由用户 root 和组 dialout 所有,因此我将自己添加到 dialout 组。至少对我有用。
如果您的情况允许您使用 sudo,那么为什么还有其他选择!
关于c - NUC串口打开失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51949463/