色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

ROS與STM32串口通信代碼

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

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

在頭文件中,進(jìn)行串口頭文件的包含

#include < serial/serial.h >

在類的定義中,什么一個(gè) serial 類的實(shí)例

serial::Serial Stm32_Serial;  //聲明串口對(duì)象

并且在類的定義中,聲明兩個(gè)結(jié)構(gòu)體,用來存儲(chǔ)接收和要發(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ù)中,配置這個(gè)串口對(duì)象的參數(shù)

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

這兩個(gè)參數(shù)是在launch文件中設(shè)置的,代碼里進(jìn)行參數(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 //選擇要開啟的串口號(hào)
    Stm32_Serial.setBaudrate(serial_baud_rate); //Set the baud rate //設(shè)置波特率
    serial::Timeout _time = serial::Timeout::simpleTimeout(2000); //Timeout //超時(shí)等待
    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 //如果開啟串口失敗,打印錯(cuò)誤信息
  }

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

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

  • 要開啟的串口號(hào)
  • 設(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é)議再進(jìn)行和校驗(yàn)與數(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 //通過串口向下位機(jī)發(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ù)失敗,打印錯(cuò)誤信息
  }
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 控制器
    +關(guān)注

    關(guān)注

    112

    文章

    16444

    瀏覽量

    179088
  • STM32
    +關(guān)注

    關(guān)注

    2271

    文章

    10923

    瀏覽量

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

    關(guān)注

    21

    文章

    404

    瀏覽量

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

    關(guān)注

    1

    文章

    280

    瀏覽量

    17059
收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

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

    stm32f407串口通信代碼

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

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

    STM32串口通信以及溫度采集搞定,其中主要遇到STM32系列單片機(jī)時(shí)鐘樹的問題,串口通信遇到
    發(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串口通訊USART串口通信實(shí)踐USART串口通信實(shí)踐1、實(shí)驗(yàn)環(huán)境參考資料 野火官
    發(fā)表于 12-06 20:21 ?13次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>串口</b>通訊

    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ǔ)實(shí)驗(yàn)

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

    STM32串口通訊——中斷方式

    一、簡介在上一次我們學(xué)習(xí)了如何使用查詢的方式進(jìn)行串口通訊——發(fā)送數(shù)據(jù),以及中斷的方式,在本次我們使用中斷來進(jìn)行串口通訊。可以參考以前的博客:串口通訊:STM32
    發(fā)表于 12-07 09:51 ?27次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>串口</b>通訊——中斷方式

    初步了解STM32串口通訊

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

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

    "2個(gè)STM32串口之間的串口通信(RX,TX)"
    發(fā)表于 12-09 17:21 ?83次下載
    "2個(gè)<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串口通信簡明知識(shí)

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

    利用Simulink自動(dòng)生成STM32串口代碼

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

    智能車ROSSTM32串口通信代碼

    這里以一個(gè)智能車代碼工程為例,抽取串口通信部分代碼 在頭文件中,進(jìn)行串口頭文件的包含 # include 在類的定義中,什么一個(gè) seria
    的頭像 發(fā)表于 11-26 17:47 ?1216次閱讀
    主站蜘蛛池模板: 国产精品久久人妻无码网站一区无 | 欧美日韩国产在线一区二区 | 中文字幕 人妻熟女 | 无码欧美毛片一区二区三在线视频 | 九九99热久久999精品 | 美女不要啊 | RUNAWAY韩国动漫免费官网版 | 邻居的阿2中文字版电影 | 小柔的性放荡羞辱日记 | 91亚洲精品福利在线播放 | 女人会操出水图 | 国产真实女人一级毛片 | 顶级少妇AAAAABBBBB片 | HEYZO无码中文字幕人妻 | 无码日韩人妻精品久久蜜桃入口 | 花蝴蝶在线高清视频观看免费播放 | 国产一卡2卡3卡4卡孕妇网站 | 伊人久久综合成人亚洲 | 色欲久久99精品久久久久久AV | 久久精品久久精品 | 91欧洲在线视精品在亚洲 | 光溜溜的美女直播软件 | 中文字幕A片视频一区二区 中文字幕AV在线一二三区 | 亚洲AV无码国产精品色在线看 | 果冻传媒我的女老板 | 亚洲国产精品日本无码网站 | 不卡人妻无码AV中文系列APP | 人和拘一级毛片 | 亚洲免费网站观看视频 | 毛片基地看看成人免费 | free高跟丝袜秘书hd | 国产精品人妻系列21P | 精品国产乱码久久久久久软件 | 国产三级级在线电影 | 九九在线免费视频 | 狂野猛交xxxx吃奶 | 八妻子秋霞理在线播放 | 日韩精品无码久久一区二区三 | 97视频久久 | 软糯白嫩双性受h | 国产亚洲精品字幕在线观看 |