在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

ROS與STM32串口通信代碼

麥辣雞腿堡 ? 來源:古月居 ? 作者:月照銀海似蛟龍 ? 2023-11-17 18:10 ? 次閱讀

這里以一個智能車代碼工程為例,抽取串口通信部分代碼

在頭文件中,進行串口頭文件的包含

#include < serial/serial.h >

在類的定義中,什么一個 serial 類的實例

serial::Serial Stm32_Serial;  //聲明串口對象

并且在類的定義中,聲明兩個結(jié)構(gòu)體,用來存儲接收和要發(fā)送的數(shù)據(jù)

RECEIVE_DATA Receive_Data; //The serial port receives the data structure //串口接收數(shù)據(jù)結(jié)構(gòu)體
SEND_DATA Send_Data;       //The serial port sends the data structure //串口發(fā)送數(shù)據(jù)結(jié)構(gòu)體

在類的構(gòu)造函數(shù)中,配置這個串口對象的參數(shù)

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

這兩個參數(shù)是在launch文件中設(shè)置的,代碼里進行參數(shù)的讀取。

usart_port_name 設(shè)置的USB設(shè)備別名

serial_baud_rate 串口通信的波特率要和stm32設(shè)置的一致

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 //設(shè)置波特率
    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 //如果開啟串口失敗,打印錯誤信息
  }

初始化串口配置,并開啟串口

設(shè)置的參數(shù)包括:

  • 要開啟的串口號
  • 設(shè)置波特率
  • 超時等待

判斷串口是否被打開,打開輸出終端打印信息

if(Stm32_Serial.isOpen())
  {
    ROS_INFO_STREAM("car_robot serial port opened"); //Serial port opened successfully //串口開啟成功提示
  }

ROS主控讀取stm32發(fā)送的數(shù)據(jù)

之后便可以通過

Stm32_Serial.read(Receive_Data_Pr,sizeof(Receive_Data_Pr));

read函數(shù)讀取串口接收到的字節(jié),之后通過定義的通信協(xié)議再進行和校驗與數(shù)據(jù)解析即可stm32向ROS主控發(fā)送數(shù)據(jù)。

ROS主控向stm32發(fā)送數(shù)據(jù)

ROS主控向stm32發(fā)送數(shù)據(jù)的代碼如下:

將之前定義的發(fā)送數(shù)據(jù)的結(jié)構(gòu)體 Send_Data的tx 中填入要發(fā)送的字節(jié)

Send_Data.tx[0]=FRAME_HEADER; //frame head 0x7B //幀頭0X7B
 Send_Data.tx[1] = 0; //set aside //預(yù)留位
 Send_Data.tx[2] = 0; //set aside //預(yù)留位

填好字節(jié)后,直接通過下面代碼發(fā)送即可

try
  {
    Stm32_Serial.write(Send_Data.tx,sizeof (Send_Data.tx)); //Sends data to the downloader via serial port //通過串口向下位機發(fā)送數(shù)據(jù) 
  }
  catch (serial::IOException& e)   
  {
    ROS_ERROR_STREAM("Unable to send data through serial port"); //If sending data fails, an error message is printed //如果發(fā)送數(shù)據(jù)失敗,打印錯誤信息
  }
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 控制器
    +關(guān)注

    關(guān)注

    112

    文章

    16448

    瀏覽量

    179477
  • STM32
    +關(guān)注

    關(guān)注

    2272

    文章

    10924

    瀏覽量

    357599
  • 智能車
    +關(guān)注

    關(guān)注

    21

    文章

    404

    瀏覽量

    77066
  • ROS
    ROS
    +關(guān)注

    關(guān)注

    1

    文章

    280

    瀏覽量

    17102
收藏 人收藏

    評論

    相關(guān)推薦

    求大佬分享STM32串口通信配置源代碼分享

    求大佬分享STM32串口通信配置源代碼分享
    發(fā)表于 12-10 06:46

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

    如何去實現(xiàn)ROSSTM32串口通信測試功能?如何完成ROSSTM32之間的
    發(fā)表于 12-10 06:54

    stm32串口調(diào)試軟件

    電子發(fā)燒友網(wǎng)站提供《stm32串口調(diào)試軟件.rar》資料免費下載
    發(fā)表于 09-06 16:59 ?6次下載

    stm32f407串口通信代碼

    stm32f407串口通信代碼 原理圖還有封裝 很清楚自己畫的
    發(fā)表于 03-21 17:22 ?0次下載

    STM32串口通信數(shù)據(jù)亂碼的相關(guān)問題

    STM32串口通信以及溫度采集搞定,其中主要遇到STM32系列單片機時鐘樹的問題,串口通信遇到
    發(fā)表于 06-22 08:01 ?1.2w次閱讀
    <b class='flag-5'>STM32</b><b class='flag-5'>串口</b><b class='flag-5'>通信</b>數(shù)據(jù)亂碼的相關(guān)問題

    STM32串口通信

    STM32串口通信串口通信簡介編程代碼注意:本文參考STM3
    發(fā)表于 12-07 09:36 ?15次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>串口</b><b class='flag-5'>通信</b>

    Stm32串口通信基礎(chǔ)實驗

    目錄二、stm32串口通信二級目錄三級目錄二、stm32串口通信1.本次實驗使用的是
    發(fā)表于 12-07 09:36 ?32次下載
    <b class='flag-5'>Stm32</b><b class='flag-5'>串口</b><b class='flag-5'>通信</b>基礎(chǔ)實驗

    初步了解STM32串口通訊

    STM32串口通訊一、基于寄存器與基于固件庫的編程方式的差異二、stm32串口通信實戰(zhàn)1、燒錄代碼
    發(fā)表于 12-07 09:51 ?13次下載
    初步了解<b class='flag-5'>STM32</b><b class='flag-5'>串口</b>通訊

    "2個STM32串口之間的串口通信(RX,TX)"

    "2個STM32串口之間的串口通信(RX,TX)"
    發(fā)表于 12-09 17:21 ?83次下載
    "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串口通信一、串口通信協(xié)議1.串口通信
    發(fā)表于 12-20 19:29 ?17次下載
    【嵌入式】<b class='flag-5'>STM32</b><b class='flag-5'>串口</b><b class='flag-5'>通信</b>

    stm32串口代碼詳解

    stm32串口
    發(fā)表于 12-24 18:38 ?52次下載
    <b class='flag-5'>stm32</b><b class='flag-5'>串口</b><b class='flag-5'>代碼</b>詳解

    STM32串口通信

    STM32串口通信串口通信簡介編程代碼注意:本文參考STM3
    發(fā)表于 01-14 13:47 ?12次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>串口</b><b class='flag-5'>通信</b>

    STM32串口通信簡明知識

    STM32串口通信簡明知識
    的頭像 發(fā)表于 10-25 15:48 ?1391次閱讀
    <b class='flag-5'>STM32</b><b class='flag-5'>串口</b><b class='flag-5'>通信</b>簡明知識

    利用Simulink自動生成STM32串口代碼

    功能:利用Simulink自動生成STM32串口代碼,在Keil中編譯后直接下載到主芯片,實現(xiàn)串口通訊的功能。
    的頭像 發(fā)表于 10-25 17:04 ?1918次閱讀
    利用Simulink自動生成<b class='flag-5'>STM32</b><b class='flag-5'>串口</b><b class='flag-5'>代碼</b>

    智能車ROSSTM32串口通信代碼

    這里以一個智能車代碼工程為例,抽取串口通信部分代碼 在頭文件中,進行串口頭文件的包含 # include 在類的定義中,什么一個 seria
    的頭像 發(fā)表于 11-26 17:47 ?1230次閱讀
    主站蜘蛛池模板: 欧美性猛交xxxx免费看久久 | 成人精品福利 | 五月情视频在线观看 | 毛片多多| 国模吧双双大尺度炮交gogo | 国产黄色精品 | 国产特黄1级毛片 | 欧美日韩一日韩一线不卡 | 婷婷开心激情 | 亚洲韩国在线一卡二卡 | 日本黄色小说视频 | 午夜黄网站 | 欧美一区二区精品 | jlzzjlzz亚洲日本 | 四虎黄色片 | 天天摸日日摸 | 在线看黄的网站 | 中国美女一级黄色片 | 美女黄页黄频 | 久久久久亚洲香蕉网 | 亚洲欧美成人综合久久久 | 80s国产成年女人毛片 | 嫩草影院在线入口 | 成人午夜性视频欧美成人 | 欧美在线你懂的 | 色综合天天网 | xxxx欧美| 免费看污黄视频软件 | 好硬好大好爽女房东在线观看 | 热99视频 | 亚洲欧美网站 | 成人一级毛片 | 成人福利在线视频 | 久久久综合视频 | 欧美午夜色大片在线观看免费 | 播播开心激情网 | 国产精品爱久久久久久久三级 | 成人综合网站 | 国产三级在线视频观看 | 女同毛片免费网站 | 狠狠色噜噜狠狠狠狠奇米777 |