我在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
更改文件的权限之外,还有其他方法吗?
答案 0 :(得分:0)
sudo usermod -a -G dialout <User>
/ dev / ttyxy由用户root和组 dialout 拥有,因此我将自己添加到了拨出组中。至少对我有用。
如果您的情况允许您使用 sudo ,那么为什么要选择其他任何选择!