文章目录

  • 前言
  • 一、安装串口功能包
  • 二、串口接受程序
  • 三 、查看串口号

前言

在使用工控机时,经常需要和其他主控进行信息交流,串口通讯作为使用最为广泛的形式,因此,了解如何在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节点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++){//16进制显示接受到的数据cout << std::hex << (recdata[i] & 0xff) << " ";}cout << endl;}//   以1HZ的频率loop_rate.sleep();}return 0;
}

三 、查看串口号

1.查看当前终端串口号
ls /dev/tty*
2.插入临时使用的外设串口

3.再次查看终端串口号
ls /dev/tty*,看看此时多了那个串口号,就是接入的外设

4.假设该设备号为/dev/ttyUSB0,给设备赋予可读写权限
sudo chmod 777 /dev/ttyUSB0

ROS下进行串口通讯相关推荐

  1. 中断方式下进行串口通讯的正确方法

    转载:http://bbs.ednchina.com/BLOG_ARTICLE_277752.HTM 中断方式下进行串口通讯的正确方法 一般普遍的把串口通讯分为查询方式和中断方式.查询方式比较容易理解 ...

  2. 关于嵌入式linux下的串口通讯问题---回车、换行、缓冲

    嵌入式Linux串口通讯测试问题:   经过实验,从Linux(PC)通过串口向嵌入式Linux开发板发送数据时,串口初始化完毕后遇到回车(0x0d)或换行(0x0a)才开始从串口接收数据,回车或换行 ...

  3. ROS下使用串口发送数据

    ROS下使用串口发送数据 #include <stdio.h> #include <string.h> #include <ros/ros.h> #include ...

  4. linux下实现串口通讯

    1.关键结构体 (1)struct termios                 { unsigned short c_iflag;             /* 输入模式标志*/          ...

  5. ROS环境下的串口通讯

    目录 1.前言 2.内容 2.1 准备工作 2.1.1 连接外部USB设备 2.1.2 串口调试工具的下载 2.1.3 serial库的安装 2.2 代码部分 2.2.1 编写发布节点 2.2.2 编 ...

  6. Cypress EZ-USB FX3 DMA模式下的串口通讯

    由于公司设备升级后出了问题,需要对USB驱动进行修改,原本使用的是寄存器模式进行UART传输,但是由于FX3寄存器模式会出现长时间延时等待的问题,不得不对其传输模式进行修改.虽然赛普拉斯的EZ-USB ...

  7. linux 串口 换行十六制,关于嵌入式linux下的串口通讯问题---需增加回车/换行才能接收...

    问题:在Linux应用层,直接从/dev/tty***使用read()函数读数据,无法读到,只有在数据末尾加上0a/0d才可以读到数据(这里是发送十六进制的数据,ASCLL码同理,增加回车才可以读到数 ...

  8. C——Linux下的串口编程

    原 C--Linux下的串口编程 2017年06月06日 19:30:50 C_Aya 阅读数:11537 <span class="tags-box artic-tag-box&qu ...

  9. 乐鑫esp8266的串口通讯驱动源文件,nonos和rtos版本

    代码地址如下: http://www.demodashi.com/demo/13650.html 文章目录 一.前言: 二.`esp8266`的串口分布情况: 三.`esp8266`的串口通讯时候,应 ...

最新文章

  1. pytorch中arange()函数用法
  2. 管理口地址 ibm_WAN口有IP地址上不了网如何解决 WAN口有IP地址上不了网解决方法【详解】...
  3. lnmp架构搭建—源码编译(nginx、mysql、php)
  4. freeeim源码一个个投篮的命中
  5. VS2010 工具箱组件添加重复
  6. nuxtjs+express+vue2+vuex搭建的服务端渲染(SSR)个人网站项目
  7. go替代python运维_粗读web框架之go gin和python django
  8. 3D滚动控件实现抽奖效果
  9. 天津大学仁爱学院哪个计算机专业2013山西理科录取分数,天津大学仁爱学院2020年录取分数线(附2017-2020年分数线)...
  10. pwd python 安装 模块_在windows上安装pwd模块时出错
  11. 【基于python+Django的物品协同过滤音乐推荐系统-哔哩哔哩】 https://b23.tv/V2zN54R
  12. 秃头警告之——使用mondo rescue备份linux系统ISO镜像的踩坑历程
  13. 帝国cms支付系统的漏单风险
  14. 浅谈Web App前端设计原则
  15. C/C++ struct定义
  16. 3.JavaScript核心BOM操作学习(界面交互功能)——JavaScript获取自定义的方法,开始进行节点操作
  17. 观其关键字排名查询工具_seo常用工具统计
  18. mtk平台lcd驱动移植
  19. 微服务实战|微服务网关Zuul入门与实战
  20. 亚马逊、微软云和二度云 国外三大云服务商优劣的那些事!

热门文章

  1. Linux数据备份与恢复
  2. [转贴]中国电视剧,除了“山寨”还能做什么
  3. python之路——初识面向对象
  4. oss批量上传工具_使用oss批量上传图片
  5. 解决Springboot 项目启动时,出现大量CONDITIONS EVALUATION REPORT的问题
  6. 十分钟开发物联网:智慧农业大棚环境监测(4G版)
  7. 一个MM的三国志10游戏经历
  8. fdisk时WARNING: Re-reading the partition table failed with error 16: 设备或资源忙 的问题解决方案
  9. zip压缩包解密神器,zip压缩包权限限制怎么解除?
  10. python_进程池以及线程池