0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

智能车ROS与STM32串口通信代码

麦辣鸡腿堡 来源:古月居 作者:月照银海似蛟龙 2023-11-26 17:47 次阅读

这里以一个智能车代码工程为例,抽取串口通信部分代码

在头文件中,进行串口头文件的包含

#include < serial/serial.h >

在类的定义中,什么一个 serial 类的实例

serial::Serial Stm32_Serial;  //声明串口对象

并且在类的定义中,声明两个结构体,用来存储接收和要发送的数据

RECEIVE_DATA Receive_Data; //The serial port receives the data structure //串口接收数据结构体
SEND_DATA Send_Data;       //The serial port sends the data structure //串口发送数据结构体

在类的构造函数中,配置这个串口对象的参数

private_nh.param< std::string >("usart_port_name",  usart_port_name,  "/dev/stm32_controller"); //Fixed serial port number //固定串口号
  private_nh.param< int >        ("serial_baud_rate", serial_baud_rate, 115200); //Communicate baud rate 115200 to the lower machine //和下位机通信波特率115200

这两个参数是在launch文件中设置的,代码里进行参数的读取。

usart_port_name 设置的USB设备别名

serial_baud_rate 串口通信的波特率要和stm32设置的一致

try
  { 
    //Attempts to initialize and open the serial port //尝试初始化与开启串口
    Stm32_Serial.setPort(usart_port_name); //Select the serial port number to enable //选择要开启的串口号
    Stm32_Serial.setBaudrate(serial_baud_rate); //Set the baud rate //设置波特率
    serial::Timeout _time = serial::Timeout::simpleTimeout(2000); //Timeout //超时等待
    Stm32_Serial.setTimeout(_time);
    Stm32_Serial.open(); //Open the serial port //开启串口
  }
  catch (serial::IOException& e)
  {
    ROS_ERROR_STREAM("car_robot can not open serial port,Please check the serial port cable! "); //If opening the serial port fails, an error message is printed //如果开启串口失败,打印错误信息
  }

初始化串口配置,并开启串口

设置的参数包括:

  • 要开启的串口号
  • 设置波特率
  • 超时等待

判断串口是否被打开,打开输出终端打印信息

if(Stm32_Serial.isOpen())
  {
    ROS_INFO_STREAM("car_robot serial port opened"); //Serial port opened successfully //串口开启成功提示
  }
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • STM32
    +关注

    关注

    2257

    文章

    10822

    浏览量

    352410
  • 串口通信
    +关注

    关注

    34

    文章

    1601

    浏览量

    55228
  • ROS
    ROS
    +关注

    关注

    1

    文章

    276

    浏览量

    16882
收藏 人收藏

    评论

    相关推荐

    如何完成ROSSTM32之间的串口通信

    如何去实现ROSSTM32串口通信测试功能?如何完成ROSSTM32之间的
    发表于 12-10 06:54

    stm32f407串口通信代码

    stm32f407串口通信代码 原理图还有封装 很清楚自己画的
    发表于 03-21 17:22 0次下载

    STM32串口通信数据乱码的相关问题

    STM32串口通信以及温度采集搞定,其中主要遇到STM32系列单片机时钟树的问题,串口通信遇到
    发表于 06-22 08:01 1.2w次阅读
    <b class='flag-5'>STM32</b><b class='flag-5'>串口</b><b class='flag-5'>通信</b>数据乱码的相关问题

    STM32串口通讯

    STM32串口通讯USART串口通信实践USART串口通信实践1、实验环境参考资料 野火官
    发表于 12-06 20:21 12次下载
    <b class='flag-5'>STM32</b><b class='flag-5'>串口</b>通讯

    STM32串口通信

    STM32串口通信串口通信简介编程代码注意:本文参考STM3
    发表于 12-07 09:36 15次下载
    <b class='flag-5'>STM32</b><b class='flag-5'>串口</b><b class='flag-5'>通信</b>

    Stm32串口通信基础实验

    目录二、stm32串口通信二级目录三级目录二、stm32串口通信1.本次实验使用的是
    发表于 12-07 09:36 32次下载
    <b class='flag-5'>Stm32</b><b class='flag-5'>串口</b><b class='flag-5'>通信</b>基础实验

    初步了解STM32串口通讯

    STM32串口通讯一、基于寄存器与基于固件库的编程方式的差异二、stm32串口通信实战1、烧录代码
    发表于 12-07 09:51 13次下载
    初步了解<b class='flag-5'>STM32</b><b class='flag-5'>串口</b>通讯

    "2个STM32串口之间的串口通信(RX,TX)"

    "2个STM32串口之间的串口通信(RX,TX)"
    发表于 12-09 17:21 81次下载
    "2个<b class='flag-5'>STM32</b><b class='flag-5'>串口</b>之间的<b class='flag-5'>串口</b><b class='flag-5'>通信</b>(RX,TX)"

    【嵌入式】STM32串口通信

    【嵌入式】STM32串口通信一、串口通信协议1.串口通信
    发表于 12-20 19:29 17次下载
    【嵌入式】<b class='flag-5'>STM32</b><b class='flag-5'>串口</b><b class='flag-5'>通信</b>

    stm32串口代码详解

    stm32串口
    发表于 12-24 18:38 52次下载
    <b class='flag-5'>stm32</b><b class='flag-5'>串口</b><b class='flag-5'>代码</b>详解

    STM32串口通信

    STM32串口通信串口通信简介编程代码注意:本文参考STM3
    发表于 01-14 13:47 11次下载
    <b class='flag-5'>STM32</b><b class='flag-5'>串口</b><b class='flag-5'>通信</b>

    STM32串口通信简明知识

    STM32串口通信简明知识
    的头像 发表于 10-25 15:48 1156次阅读
    <b class='flag-5'>STM32</b><b class='flag-5'>串口</b><b class='flag-5'>通信</b>简明知识

    利用Simulink自动生成STM32串口代码

    功能:利用Simulink自动生成STM32串口代码,在Keil中编译后直接下载到主芯片,实现串口通讯的功能。
    的头像 发表于 10-25 17:04 1531次阅读
    利用Simulink自动生成<b class='flag-5'>STM32</b><b class='flag-5'>串口</b><b class='flag-5'>代码</b>

    智能车控制器功能介绍

    要建立通信,本篇博客主要讲解: 如何实现ROS主控和STM32之间的通信 ROS主控对STM32
    的头像 发表于 11-17 17:54 577次阅读
    <b class='flag-5'>智能车</b>控制器功能介绍

    ROSSTM32串口通信代码

    这里以一个智能车代码工程为例,抽取串口通信部分代码 在头文件中,进行串口头文件的包含 # inc
    的头像 发表于 11-17 18:10 851次阅读