$ sudo chmod 666 /dev/ttyUSB0
方式2:创建ttyUSB权限规则文件(一劳永逸)
$ sudo gedit /etc/udev/rules.d/70-ttyusb.rules
文件中写入下列代码:
KERNEL==“ttyUSB*”, OWNER=“root”, GROUP=“root”, MODE=“0666”
保存,重新登录后即生效
---
### 2. ROS安装serial包
安装指令:
sudo apt-get install ros-melodic-serial
不同版本的ROS,有对应的ROS包,melodic版本的ROS,serial包名称为
“ ros-melodic-serial ”
---
### 3. ROS实现串口通信
(1)创建串口对象
(2)设置串口属性,打开串口
(3)串口数据收发
#### 3.1 编写串口通信程序
##### 3.1.1 创建工作空间,编译,将工作空间添加到环境变量\*\*
$ mkdir -p test_serial_ws/src
$ cd test_serial_ws
$ catkin_make
…
$ source devel/setup.bash
##### 3.1.2 创建软件包,添加依赖 serial包,编辑程序文件\*\*
$ cd src
$ catkin_create_pkg serial_demo roscpp serial
src文件下,创建serial\_demo.cpp的c++程序
$ serial_demo
$ cd src
& touch serial_demo.cpp
编辑serial\_demo.cpp文件
#include <ros/ros.h>
#include <serial/serial.h>
#include
int main(int argc,char**argv)
{
setlocale(LC_ALL,“”);
//ros显示中文
ros::init(argc,argv,“serial_port”);
//创建节点,节点名唯一
ros::NodeHandle nh;
//创建句柄 ,向ros master注册节点信息
serial::Serial sp;
//创建窗口对象
try
{
sp.setPort("/dev/ttyUSB0");
//设置要打开串口名称
sp.setBaudrate(9600);
//设置波特率
serial::bytesize_t bytesize = serial::eightbits;
sp.setBytesize(bytesize);
//设置数据位
serial::parity_t parity = serial::parity_none;
sp.setParity(parity);
//设置奇偶检验
serial::stopbits_t stopbits = serial::stopbits_one;
sp.setStopbits(stopbits) ;
//设置停止位
serial::Timeout to = serial::Timeout::simpleTimeout(100);
sp.setTimeout(to);
//设置接收字节间隔的超时时间
sp.open();
//打开串口
}
catch(serial::IOException &e)
{
ROS\_ERROR\_STREAM("打开串口失败");//串口设备的权限不够
}
if(sp.isOpen())
{
sp.flushInput();
//清空输入的缓存区
ROS\_INFO\_STREAM("串口打开成功");
}
else
{
return -1;
}
ros::Rate loop\_rate(500);
while(ros::ok())
{
size_t n = sp.available();
//缓冲区中数据的字节数,函数返回值作为接收字符的长度
if(n!=0)
{
std::string rev;
rev = sp.read(n);//n为字节数
//读取缓冲区数据
std::cout<<rev<<std::endl;
sp.write(rev.c\_str());;
//发送读取到的数据
}
loop_rate.sleep();
}
sp.close();
return 0;
}
修改CMakeList文件
**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**
**深知大多数嵌入式工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**
**因此收集整理了一份《2024年嵌入式&物联网开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**
![img](https://img-blog.csdnimg.cn/img_convert/8fce057d786fde4fd6cbfdb0822c5299.png)
![img](https://img-blog.csdnimg.cn/img_convert/7e3493b22d606829d21402f17dd4a4bf.jpeg)
![img](https://img-blog.csdnimg.cn/img_convert/491e939a2a8098b4a1984de8a0b0f8e9.png)
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!**
![img](https://img-blog.csdnimg.cn/img_convert/42298b0109e197139c61668f8fb021d8.png)
![img](https://img-blog.csdnimg.cn/img_convert/5ac348a72aa3b957e795cf73c43ee0d8.png)
**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**
**如果你觉得这些内容对你有帮助,可以+V:Vip1104z获取!!! (备注:嵌入式)**
<img src="https://img-community.csdnimg.cn/images/73bb5de17851459088c6af944156ee24.jpg" alt="img" style="zoom: 67%;" />
# 最后
**资料整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~**
**你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!**
img src="https://img-community.csdnimg.cn/images/73bb5de17851459088c6af944156ee24.jpg" alt="img" style="zoom: 67%;" />
# 最后
**资料整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~**
**你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!**
**[更多资料点击此处获qu!!](https://bbs.csdn.net/topics/618376385)**