#include <ros/ros.h> //必备
#include <serial/serial.h> //ROS已经内置了的串口包
#include <iostream> //输入输出库
int main (int argc, char** argv)
{
//初始化节点
ros::init(argc, argv, "serial_example_node");
//声明节点句柄
ros::NodeHandle nh;
//创建一个serial 类
serial::Serial ser;
try
{
//设置串口属性,并打开串口
ser.setPort("/dev/ttyUSB0");
ser.setBaudrate(115200);
serial::Timeout to = serial::Timeout::simpleTimeout(1000);
ser.setTimeout(to);
ser.open();
}
catch (serial::IOException& e)
{
ROS_ERROR_STREAM("Unable to open port ");
return -1;
}
//检测串口是否已经打开,并给出提示信息
if(ser.isOpen())
{
ROS_INFO_STREAM("Serial Port initialized");
}
else
{
return -1;
}
//指定循环的频率
ros::Rate loop_rate(50);
while(ros::ok())
{
//获取缓冲区的字节数
size_t n = ser.available();
if (n!=0)
{
uint8_t buffer[1024];
//读取数据
n = ser.read(buffer , n);
for (int i=0; i<n; i++)
{
//16
std::cout << std::hex << (buffer[i] & 0xff) << " ";
}
std::cout << std::endl;
//
ser.write(buffer , n);
}
loop_rate.sleep();
}
}
亲测有效
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)