<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

基于MicroROS學習板的串口通信接收實驗

CHANBAEK ? 來源:魚香ROS ? 作者:小魚 ? 2023-07-03 10:48 ? 次閱讀

你好,我是愛吃魚香ROS的小魚。上一節我們完成了第一個Hello World工程,學習使用了串口模塊的初始化和發送,本節我們再來一個串口接收小實驗,把串口收發數據補齊。

教程所使用硬件平臺為MicroROS學習板V1.0.0,可點擊閱讀原文購買及查看詳情

圖片

一、檢測并接收單個字符

1.1 代碼編寫

/**
 * @file demo01_read_byte.cpp
 * @author fishros@foxmail.com
 * @brief 初始化串口,當有數據過來的時候讀取并將數據打印出來
 * @version 0.1
 * @date 2022-12-18
 * 
 * @copyright Copyright (c) 2022
 * 
 */
#include < Arduino.h >


void setup()
{
    // 初始化串口
    Serial.begin(115200);
}


void loop()
{
    // 判斷是否有有效數據,返回值是有效數據的長度
    if (Serial.available())
    {
        // 讀取一個數據
        int c = Serial.read();
        // -1 代表接收失敗
        if (c != -1)
        {
            // 以%c字符的格式輸出接收的數據
            Serial.printf("I receve %c\\n", c);
        }
    }
}

這里多用了一個函數Serial.available(),該函數代表當前串口中緩存有效數據的長度。

1.2 使用串口監視器發送消息

使用快捷鍵,編譯 Ctrl+Alt+B、上傳 Ctrl+Alt+U,接著準備發送數據

因為要發送消息,這里我們換一個收發分離的串口監視器來進行數據發送

使用Ctrl+Alt+~打開終端,接著在終端中你可以看到串口監視器一欄

圖片

接著打開我們板子對應的串口設備

?選擇串口編號

?設置波特率

?點擊開始監視

圖片

發送測試

?輸入數據

?點擊發送

?查看返回

圖片

嘗試發送12

圖片

可以看到收到了兩條返回,這是因為我們每次只接收一個數據,所以即使發送12,接收數據也是一個一個接收和打印的。

那有沒有辦法一次性接收多個數據呢?我們換個函數即可。

二、一次性接收一串數據

2.1 代碼編寫

/**
 * @file demo01_read_byte.cpp
 * @author fishros@foxmail.com
 * @brief 初始化串口,當有數據過來的時候讀取并將數據打印出來
 * @version 0.1
 * @date 2022-12-18
 *
 * @copyright Copyright (c) 2022
 *
 */
#include < Arduino.h >


void setup()
{
    // 初始化串口
    Serial.begin(115200);
}


void loop()
{
    // 判斷是否有有效數據
    if (Serial.available())
    {
        // 讀取一個String字符串數據
        String str = Serial.readString();
        // 以%s的格式輸出接收的數據
        Serial.printf("I receve %s\\n", str.c_str());
    }
}

2.2 編譯下載

點擊按鈕或者使用快捷鍵編譯下載代碼。

如果你在下載代碼時遇到下面的錯誤,是因為剛剛的串口監視器沒有關閉,

Auto-detected: /dev/ttyUSB0
Uploading .pio/build/featheresp32/firmware.bin
esptool.py v4.2.1
Serial port /dev/ttyUSB0
Connecting...........
serial.serialutil.SerialException: device reports readiness to read but returned no data (device disconnected or multiple access on port?)
*** [upload] Error 1

點擊停止監視后,繼續下載即可

圖片

2.3 測試

下載完成后,重新打開串口,接著發送一串消息

圖片

三、總結

本節我們通過兩個串口接收數據小實驗,學習了串口數據的接收和發送。 下一節我們開始學習如何完成點燈。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 串口通信
    +關注

    關注

    33

    文章

    1585

    瀏覽量

    55011
  • 代碼
    +關注

    關注

    30

    文章

    4586

    瀏覽量

    67214
  • 學習板
    +關注

    關注

    0

    文章

    40

    瀏覽量

    12089
  • ROS
    ROS
    +關注

    關注

    1

    文章

    273

    瀏覽量

    16783
收藏 人收藏

    評論

    相關推薦

    stm32L152RCDISCOVER進行串口通信實驗接收亂碼怎么解決?

    使用stm32L152RCDISCOVER開發進行串口通信實驗為什么接收亂碼
    發表于 03-11 07:56

    串口通信實驗分享

    實驗四、串口通信實驗? 自律學習堅強 ,拒絕迷茫。作者:行走的皮卡丘時間:2021/4/4喜歡就去追,這個紅燈等不到,說不定下一個紅燈等到了,嘻嘻?。。。。。?!文章目錄
    發表于 01-14 09:08

    HL配套C實驗例程單片機串口接收數據

    HL配套C實驗例程單片機串口接收數據,配合開發板學習效果更好。
    發表于 04-11 17:04 ?1次下載

    ARM基礎應用實驗_串口通信

    ARM嵌入式應用程序架構設計實例精講--ARM基礎應用實驗01串口通信
    發表于 07-08 11:08 ?0次下載

    ARM基礎應用實驗_串口通信.rar

    電子專業單片機相關知識學習教材資料——ARM基礎應用實驗01串口通信
    發表于 09-13 17:23 ?0次下載

    上位機串口通信數據接收事件程序

    上位機 串口 通信主要介紹通信串口的初始化和串口緩沖區數據的讀取,因為此處只是作為指令來讀取,數據量小,所以緩沖區數據的讀取為有數據
    發表于 03-13 15:08 ?3824次閱讀
    上位機<b class='flag-5'>串口</b><b class='flag-5'>通信</b>數據<b class='flag-5'>接收</b>事件程序

    串口通信與串行通信的區別和寄存器及通信實驗等詳細資料說明

    本文檔的主要內容詳細介紹的是串口通信學習課件免費下載包括了:1、串口通信與串行通信的區別,2、
    發表于 12-17 17:08 ?11次下載
    <b class='flag-5'>串口</b><b class='flag-5'>通信</b>與串行<b class='flag-5'>通信</b>的區別和寄存器及<b class='flag-5'>通信實驗</b>等詳細資料說明

    基礎實驗13-USART串口接收實驗

    基礎實驗13-USART串口接收實驗實驗目的:掌握定時器USART接收字符串的方法。
    發表于 12-14 18:53 ?1次下載
    基礎<b class='flag-5'>實驗</b>13-USART<b class='flag-5'>串口</b><b class='flag-5'>接收</b><b class='flag-5'>實驗</b>

    STM32 串口通信實驗

    stm32串口通信實驗UART通信實驗(通用異步收發器)UART串口通信原理:UART的通信過程
    發表于 12-20 19:26 ?14次下載
    STM32 <b class='flag-5'>串口</b><b class='flag-5'>通信實驗</b>

    ESP32學習記錄<三>串口通信

    ESP32學習記錄串口通信文章目錄ESP32學習記錄串口通信前言一、通過
    發表于 12-20 19:34 ?17次下載
    ESP32<b class='flag-5'>學習</b>記錄<三><b class='flag-5'>串口</b><b class='flag-5'>通信</b>

    《STM32從零開始學習歷程》——USART串口通訊實驗篇2——指令控制LED燈實驗

    《STM32從零開始學習歷程》@EnzoReventonUSART串口通訊實驗篇2——指令控制LED燈實驗實驗是在《USART
    發表于 12-24 18:58 ?9次下載
    《STM32從零開始<b class='flag-5'>學習</b>歷程》——USART<b class='flag-5'>串口</b>通訊<b class='flag-5'>實驗</b>篇2——指令控制LED燈<b class='flag-5'>實驗</b>

    關于使用stm32核心板進行USART串口通信實驗

    目錄一、關于串口通信1.串口通信2.USART二、USART串口通信程序1.準備工作2.
    發表于 12-24 19:00 ?0次下載
    關于使用stm32核心板進行USART<b class='flag-5'>串口</b><b class='flag-5'>通信</b>的<b class='flag-5'>實驗</b>

    實驗四、串口通信實驗

    實驗四、串口通信實驗? 自律
    發表于 01-14 10:09 ?2次下載
    <b class='flag-5'>實驗</b>四、<b class='flag-5'>串口</b><b class='flag-5'>通信實驗</b>

    stm32學習筆記之串口通信

    要掌握的。那么,對于新手來講,串口是什么呢?串口是串行通信接口的簡稱,即是一種采用串行通信方式的擴展接口,那么什么又是串行通信呢??所謂串行
    發表于 01-18 08:34 ?4次下載
    stm32<b class='flag-5'>學習</b>筆記之<b class='flag-5'>串口</b><b class='flag-5'>通信</b>

    stc32G12k128使用舊清翔51實驗學習UART通信實驗

    stc32G12k128使用舊清翔51實驗學習UART通信實驗程序,利用舊版,學習32位單片機的串口
    發表于 11-21 10:21 ?2次下載
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>