我在 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 归用户根目录和组拨出所有,所以我将自己添加到拨出组。至少为我工作。
如果您的情况允许您使用sudo,那么为什么还有什么替代方案!