文章目录
- 前言
- 一、安装串口功能包
- 二、串口接受程序
- 三 、查看串口号
前言
在使用工控机时,经常需要和其他主控进行信息交流,串口通讯作为使用最为广泛的形式,因此,了解如何在ros下进行串口的接发数据极为重要。
硬件条件:ubuntu18.04 安装ROS系统
一、安装串口功能包
sudo apt-get install ros-melodic-serial
二、串口接受程序
#include <iostream>
#include <ros/ros.h>
#include <serial/serial.h>
using namespace std;
unsigned char senddata[5] = {0x01, 0x02, 0x03, 0x04,0x05};
unsigned char recdata[100] = {0};
int main(int argc, char** argv) {
ros::init(argc,argv,"serial_port");
ros::NodeHandle n;
serial::Serial sp;
try{
sp.setPort("/dev/ttyUSB0");
sp.setBaudrate(115200);
sp.setBytesize(serial::bytesize_t::eightbits);
sp.setStopbits(serial::stopbits_t::stopbits_one);
sp.setFlowcontrol(serial::flowcontrol_t::flowcontrol_none);
serial::Timeout to=serial::Timeout::simpleTimeout(1000);
sp.setTimeout(to);
sp.open();
}
catch(serial::IOException& e){
ROS_ERROR_STREAM("Unable to open port.");
return -1;
}
if(sp.isOpen())
{
ROS_INFO_STREAM("Com is initialized");
}
else
{
return -1;
}
ros::Rate loop_rate(1);
while(ros::ok()){
sp.write(senddata,5);
size_t n=sp.available();
if(n != 0)
{
n = sp.read(recdata, n);
for(int i = 0; i < n; i++)
{
cout << std::hex << (recdata[i] & 0xff) << " ";
}
cout << endl;
}
loop_rate.sleep();
}
return 0;
}
三 、查看串口号
1.查看当前终端串口号
ls /dev/tty*
2.插入临时使用的外设串口
3.再次查看终端串口号
ls /dev/tty*
,看看此时多了那个串口号,就是接入的外设
4.假设该设备号为/dev/ttyUSB0,给设备赋予可读写权限
sudo chmod 777 /dev/ttyUSB0
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)