动态域名做网站,官方app下载立即下载,wordpress最佳固定链接,网站代建设费用吗Ubuntu 下使用 Qt 打开串口报错 Permission denied
错误描述 提前声明一下#xff0c;开发环境是 Ubuntu18.04#xff0c;用户是非 root 用户。 因项目需求#xff0c;需要使用到 Qt 收发串口数据#xff0c;曾经写过一个串口调试助手的程序 通俗易懂玩QT#xff1a;串口…Ubuntu 下使用 Qt 打开串口报错 Permission denied
错误描述 提前声明一下开发环境是 Ubuntu18.04用户是非 root 用户。 因项目需求需要使用到 Qt 收发串口数据曾经写过一个串口调试助手的程序 通俗易懂玩QT串口调试助手制作(内附主要源代码) 这里直接拷贝到 Ubuntu 虚拟机下使用发现每次打开串口的时候都会发生错误最开始的时候还不知道发生了什么错误以为是需要在串口名前面添加 / 但是后面发现加了 / 后并没有成功打开串口所以问题不在于 / 然后在网上搜索了一下问题QSerialPort 类有个 errorString() 函数成员 可以打印开启串口失败的原因用它打印了一下加了 / 后的串口错误信息 No such file or directory 然后把 / 去掉后再次打印串口错误信息 Permission denied 于是在网上去搜索了一番有两种解决方案一种是将当前的用户添加到串口所在的分组再一种就是改变 udev 规则使普通用户可以访问其他用户组下的内容个人觉得后者安全系数会更高点下面也是分享的后者。
解决方案
打开 udev 的配置目录
cd /etc/udev/rules.d新建并编辑配置文件70-ttyusb.rules名称可以自己自行定义不过后缀必须是 .rules MODE 的值可以是 0666 也可以是0777个人觉得前者更安全可靠点
sudo vim 70-ttyusb.rulesKERNELttyUSB*, OWNERroot, GROUProot, MODE0666修改配置文件70-ttyusb.rules的权限为666(该步骤可省略)
sudo chmod 664 70-ttyusb.rules重启udev服务
sudo /etc/init.d/udev restart[ ok ] Restarting udev (via systemctl): udev.service.重新插拔串口即可这一步很关键
学习分享一起成长以上为小编的经验分享若存在不当之处请批评指正