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

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

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

3天內不再提示

ESP32學習筆記:串口

CHANBAEK ? 來源:跳動的字節 ? 作者:曉宇 ? 2023-07-13 17:09 ? 次閱讀

今天我們來玩兒串口。

概述

ESP32 芯片有3 個UART 接口,UART0,UART1,UART2,支持異步通信和 IrDA,通信速度最高可達 5Mbps,3 個接口可以被 DMACPU 直接訪問,3 個串口帶發送接收 FIFO,共享 1024*8bit 的 RAM,通過串口,我們可以非常方便的跟其它外設進行通信或者打印數據。

硬件

圖片

上圖是硬件參考設計,我把默認的串口標注出來了,我們可以在Arduino的庫中看到默認的引腳,如下圖:

圖片

圖片

UART0 引腳直接在函數里面定義了,UART1、UART2使用宏定義,大家還記得我們在GPIO章節中說的嗎,ESP32有GPIO矩陣,外設都可以隨意映射到絕大部分的引腳,比如我們想把UART2的引腳改變到GPIO26 GPIO27這兩個上,我們直接調用相關函數就行了,這些都是可以實現的,硬件上非常靈活

U0TXD 線上需串聯 499 ? 電阻用于抑制 80 MHz 諧波。ESP32 UART 串口電路如下圖所示:

圖片

這里還需要注意下,UART1的默認引腳為GPIO9,、GPIO10,這兩個接口一般用于連接外部Flash,程序中默認使用這兩個引腳的,所以我們在用的時候一定記得改到別的IO口。

軟件

關于串口的一些概念,包括原理,波特率,停止位,奇偶校驗,流控等概念,這些概念非常基礎,這里就不展開篇幅說了,需要的小伙伴自行了解,不同芯片,原理都是一樣的。

我們講一下基礎的使用:

首先我們需要在setup()中對串口進行初始化,非常簡單,就一行代碼搞定:

Serial.begin(115200);

這里默認是UART0的,將UART0波特率初始化為115200,其它參數都是默認的,如果我們想將UART0的TX RX改一下呢,我們看下面:

Serial.begin(115200,SERIAL_8N1,26,27);

通過上面的函數,我們就把RX改到了26,TX改到了27,第一個參數為波特率設置,如果輸入0就會自動監測波特率,第二個為串口配置參數,SERIAL_8N1為8位數據位,無校驗位,1位停止位的意思,還有其它參數,大家可以自行到源碼中看看,加深印象。

看到這里才體會到GPIO矩陣的妙處,硬件設計大大的簡化啊!

關于串口的函數,我們這里介紹幾個常用的,完整的可以在HardwareSerial類中看到。

void begin(unsigned long baud, uint32_t config=SERIAL_8N1, int8_t rxPin=-1, int8_t txPin=-1, bool invert=false, unsigned long timeout_ms = 20000UL); //串口初始化
void end();//失能串口
void updateBaudRate(unsigned long baud);//重新設置波特率
int available(void);//返回串口接收緩沖區中的數據
int read(void);//返回串口接收緩沖區的一個字節的數據,之后將緩沖區中的本字節刪除
void flush(void);//等待串口收發數據完畢
size_t write(uint8_t);//寫數據到TX緩沖區
size_t setRxBufferSize(size_t);//設置接收緩沖區的大小

這里只是簡單展示幾個函數,具體的用法有不懂的,或者想了解全部函數的,可以在arduino-esp32中打開具體的庫看用法,只有這樣,大家才能深刻了解,老宇哥這里只是帶大家進門。

庫函數中有標準輸入輸出函數,所以打印函數必不可少的了,我們常用的打印函數如下:

Serial.print("芯片之家!"); //打印數據
Serial.println("This is a uart0 demo!"); //打印并換行

當然,也可以各種格式化打印,大家可以自行嘗試!

Serial.println(data) //從串行端口輸出數據,跟隨一個回車(ASCII 13, 或 'r')和一個換行符(ASCII 10, 或 'n')。這個函數所取得的值與 Serial.print()一樣。
Serial.println(b) //以十進制形式輸出b的ASCII編碼值,并同時跟隨一個回車和換行符。
Serial.println(b, DEC)// 以十進制形式輸出b的ASCII編碼值,并同時跟隨一個回車和換行符。
Serial.println(b, HEX) //以十六進數據形式輸出b的ASCII編碼值,并同時跟隨一個回車和換行符。
Serial.println(b, OCT)//以八進數據形式輸出b的ASCII編碼值,并同時跟隨一個回車和換行符。
Serial.println(b, BIN)//以二進數據形式輸出b的ASCII編碼值,并同時跟隨一個回車和換行符。
Serial.print(b, BYTE)//以單個字節輸出b,并同時跟隨一個回車和換行符。
Serial.println(str)//如果 str是一個字符串或數組,輸出整個 str的 ASCII編碼字符串。
Serial.println()//僅輸出一個回車和換行符。

完整程序1:

void setup()
{
  Serial.begin(115200);
}
 
void loop()
{
  Serial.print("芯片之家!"); 
  Serial.println("This is a uart0 demo!"); 
  delay(1000);
}

圖片

完整程序2:

int recData; //接收的數據
 
void setup() {
  Serial.begin(115200); 
}
 
void loop() {
  // 收到什么發什么數據
  if (Serial.available() > 0) {
    // 讀取一個字節
    recData = Serial.read();
    Serial.print("received: ");
    Serial.println(recData,HEX);
  }
}

圖片

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

    關注

    3

    文章

    389

    瀏覽量

    43702
  • 串口
    +關注

    關注

    14

    文章

    1555

    瀏覽量

    76580
  • uart
    +關注

    關注

    22

    文章

    1237

    瀏覽量

    101445
  • Arduino
    +關注

    關注

    188

    文章

    6471

    瀏覽量

    187217
  • ESP32
    +關注

    關注

    18

    文章

    971

    瀏覽量

    17311
收藏 人收藏

    評論

    相關推薦

    ESP32單片機學習筆記

    ESP32 單片機學習筆記 - 03 - MCPWM脈沖輸出/PCNT脈沖計數前言,繼續上一篇的內容。因為上一篇剛好實驗了iic和spi,形成一對。接下來講pwm另起一篇。一、電機PWM輸出
    發表于 08-23 08:47

    ESP32ESP-IDF學習筆記

    ESP32ESP-IDF 學習筆記(六)【I2C數據總線(I2C)】文章目錄ESP32ESP
    發表于 02-22 07:30

    ESP32 開發筆記(四)LVGL控件學習 Window 窗口控件 X

    ESP32 開發筆記(四)LVGL控件學習 Window 窗口控件 X
    發表于 11-14 09:06 ?6次下載
    <b class='flag-5'>ESP32</b> 開發<b class='flag-5'>筆記</b>(四)LVGL控件<b class='flag-5'>學習</b> Window 窗口控件 X

    ESP32ESP-IDF 教學(九)—— 串口通信(UART)

    ESP32ESP-IDF 教學(九)—— 串口通信(UART)文章目錄ESP32ESP-IDF 教學(九)——
    發表于 11-26 13:21 ?44次下載
    <b class='flag-5'>ESP32</b> 之 <b class='flag-5'>ESP</b>-IDF 教學(九)—— <b class='flag-5'>串口</b>通信(UART)

    [ESP32]學習筆記02

    [ESP32學習筆記02]使用ViusalStudio2017開發ESP32、按鍵輸入檢測前言一、安裝Visual Studio 2017二、配置開發環境1.安裝ViusalGDB2.
    發表于 12-03 17:36 ?23次下載
    [<b class='flag-5'>ESP32</b>]<b class='flag-5'>學習</b><b class='flag-5'>筆記</b>02

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

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

    [ESP32]學習筆記04

    Analog-to-Digital Converter(模數轉換器)的使用今天我們學習ESP32提供的ADC外設的使用,ESP32的每個ADC單元都支持兩種模式,單次讀取和連續讀取(DMA),本次
    發表于 12-22 19:02 ?9次下載
    [<b class='flag-5'>ESP32</b>]<b class='flag-5'>學習</b><b class='flag-5'>筆記</b>04

    SPI主線協議——ESP32學習筆記

    目錄SPI主線協議——ESP32學習筆記零、前言一、什么是SPI?二、通信過程?三、極性和相位四、總結SPI主線協議——ESP32學習
    發表于 12-22 19:23 ?18次下載
    SPI主線協議——<b class='flag-5'>ESP32</b><b class='flag-5'>學習</b><b class='flag-5'>筆記</b>

    ESP32 單片機學習筆記 - 04 - ADC和定時器

    ESP32 單片機學習筆記 - 04 - ADC和定時器一、模擬數字轉換器 ADC編程指南:Analog to Digital Converter。數據手冊: ESP32 技術參考手冊
    發表于 01-17 13:18 ?11次下載
    <b class='flag-5'>ESP32</b> 單片機<b class='flag-5'>學習</b><b class='flag-5'>筆記</b> - 04 - ADC和定時器

    ESP32芯片模組機器學習算法運行的應用

    強大的機器學習算法。 ESP32集天線開關、射頻巴倫、功率放大器、低噪聲放大器、濾波器以及電源管理模塊于一體,占用較小的PCB空間,即可最大化滿足實際應用多樣的功能需求。 使用EdgeImpulse在ESP32上運行機器
    發表于 03-15 17:23 ?1261次閱讀

    ESP32上的深度強化學習

    電子發燒友網站提供《ESP32上的深度強化學習.zip》資料免費下載
    發表于 12-27 10:31 ?0次下載
    <b class='flag-5'>ESP32</b>上的深度強化<b class='flag-5'>學習</b>

    Arduino Uno與ESP32串口通信

    電子發燒友網站提供《Arduino Uno與ESP32串口通信.zip》資料免費下載
    發表于 02-03 14:11 ?8次下載
    Arduino Uno與<b class='flag-5'>ESP32</b><b class='flag-5'>串口</b>通信

    ESP32學習筆記:雙核

    今天我們來說說ESP32 for Arduino 的雙核。
    的頭像 發表于 07-15 16:16 ?5063次閱讀
    <b class='flag-5'>ESP32</b><b class='flag-5'>學習</b><b class='flag-5'>筆記</b>:雙核

    ESP32學習筆記:WiFi

    今天我們來說說ESP32 的WiFi。
    的頭像 發表于 07-15 16:20 ?4028次閱讀
    <b class='flag-5'>ESP32</b><b class='flag-5'>學習</b><b class='flag-5'>筆記</b>:WiFi

    esp32s3使用多串口

    esp32s3使用多串口 我按照別人博客中設置串口2,串口打印有問題,因為沒有看到esp32s3 多串口
    的頭像 發表于 11-06 11:29 ?5121次閱讀
    <b class='flag-5'>esp32</b>s3使用多<b class='flag-5'>串口</b>
    主站蜘蛛池模板: 久久久久久久伊人电影| 轻点灬大ji巴太粗太双性高h| 99热久久这里只有精品视频| Y8848高清私人影院软件优势| 国产XXXXXX农村野外| 精品久久久噜噜噜久久7| 麻豆精品传媒2021网站入口| 色 花 堂 永久 网站| 亚洲无碼网站观看| 被黑人掹躁10次高潮| 欧美丰满白嫩bbxx| 亚洲国产女人aaa毛片在线| 99久久免热在线观看| 国内精品乱码卡一卡2卡三卡新区 国内精品乱码卡一卡2卡三卡 | 久久久免费观看| 伊人成综合网伊人222| 俄罗斯1819y0u| 蜜桃传媒星空传媒在线播放| 亚洲AV美女成人网站P站| 草莓AV福利网站导航| 久久中文字幕综合不卡一二区| 午夜天堂一区人妻| xxx成熟xxx| 看免费人成va视频全| 中文字幕免费视频精品一| 好男人在线观看免费视频WWW| 日韩亚洲欧美中文高清在线| 中文无码热在线视频| 美女搜查官被高难度黑人在线播放| 97久久国产露脸精品国产| 久久yy99re66| 亚洲乱码中文字幕久久孕妇黑人| 嘟嘟嘟WWW免费高清在线中文| 四虎精品久久久久影院| 成人国产免费| 欧美精品熟妇乱| 5G年龄确认我已满18免费| 久99视频精品免费观看福利 | 欧美精品成人a多人在线观看| 春药按摩人妻中文字幕| 热久久视久久精品2015|