嵌入式學習之UART串口

2020-09-13 祥子的日常

嵌入式學習之UART串口

計算機常見的幾種通信方式:

GPIO通信接口:如,LED燈,蜂鳴器

UART通信接口:如,BT,GPS,GPRS

I2C總線通信接口:如,重力傳感器,電容屏,攝像頭

SPI總線通信接口:如,norflash,SD卡,WIFI晶片

1-wire總線通信接口:如,DS18B20溫度傳感器,DHT11溫溼度傳感器

UART定義:UART應用非常廣泛,尤其是在工控行業,如,BT,GPS,GPRS和各類傳感器等

uart是串行方式傳輸數據,CPU和外設之間用一根信號線連接,數據傳輸是一個BIT位傳輸,數據傳輸從低位開始

如:cpu通過穿行方式發送數據0xcc(11001100)

電平狀態為:低-低-高-高-低-低-高-高

並行與串行不同,並行是cpu與外設之間有多根信號線連接(8/16/32)

串行的方式一次可以傳輸多個子節(1/2/4)

例如:內存(32根),Nandflash(8/16根)

並行傳輸速度快,串行傳輸距離遠,串行抗幹擾性強

數據同步:CPU給外設發送數據,要保證外設接收完畢,才發送下一個數據

異步:研究異步,其實就是研究對應的傳輸協議

同步:需要兩根信號線,一根數據線DATA,一根時鐘控制信號線CLK

判斷同周期的CLK為高/低電平,低放高取

uart數據傳輸協議(異步)

空閒位:不進行數據傳輸時,數據線持續發送空閒位,高電平有效,有效位為一位

起始位:進行數據傳輸時,先發送起始位,低電平有效,一位

數據位:一次性傳輸數據的有效位數 5/6/7/8,一般選8位,傳輸從低位開始,cpu和外設數據位位數要一致

奇偶效驗位:驗證數據傳輸是否正確,校驗方式有三種:奇校驗(odd),偶校驗(even),不校驗(none),有效位數一位,可不發

如:發送數據0xcc(11001100),採用奇校驗

cpu會計算0xcc中「1」的個數為4,4是一個偶數,所以會在最後發送一個校驗位1

外設接收到數據後判斷0xcc「1」的個數為4,所以要接收到cpu發送的校驗位「1」說明傳輸正確

停止位:有效位數1/2位,高電平有效

波特率:數據傳輸速率,一般常用的兩個波特率:9600bps/115200bps

RTS/CTS:用於數據流的控制,類似CLK,傳輸方式為同步

UART串口三種工作模式:

單工:數據傳輸朝一個方向進行

半雙工:數據傳輸雙向進行,同一時刻只能朝一個方向

全雙工:數據傳輸同時雙向進行,一般都是採用全雙工

至少三根線:

TX:發送線

RX:接收線

GND:地線

相關焦點

  • 基於Lua腳本語言的嵌入式UART通信的實現
    該方案將具體串口報文規約的組建和解析交給Lua腳本進行處理,從而使設計者在裝置的軟體開發中,可僅關注於相關接口的設計,而不用關心具體的串口通信規約,從而方便軟體的定型,並提高了裝置自身在應用中的靈活性。
  • 敏矽微電子Cortex-M0學習筆記07-串口通信詳解
    串口最重要的功能就是能夠讓單片機和外部設備進行數據交互。例如在我們學習敏矽微電子的cortex m0時,可以將開發板與電腦相連,通過串口調試助手來調試程序、觀察程序運行結果。還有很多其他的串口模塊,比如藍牙、 NBIOT、GPRS、4G 等模組,都是使用的串口來進行驅動的,因此掌握串口是嵌入式工程師必備的技能。接下來我們就來學習如何驅動ME32F030上的串口。在正式學習之前,我們先對UART串口的通信格式做一個了解。
  • UART IDLE 中斷使用-接收不定長串口數據
    >增加接收Buffermain.cstm32f4xx_hal_uart.c在接收函數中使能IDLE中斷stm32f4xx_hal_uart.c  HAL_UART_Receive_DMA()函數處理IDLE中斷stm32f4xx_hal_uart.c  HAL_UART_IRQHandler ()函數
  • GD32VF103之串口uart最小配置
    嵌入式系統中串口是非常重要的接口,除了用於與外設通信外,用它列印log和調試是最常用的手段之一。本文介紹gd32vf103晶片串口的最小配置,並實現printf函數,以方便log列印。AFIO模式串口0默認用到了GPIOA的9和10引腳(關於gpio的基地址和配置等內容可以查看我的另一篇文章《Longan nano(GD32VF103)之GPIO最小配置》)。
  • 嵌入式arm開發學習第五天
    嵌入式arm學習第五天相關概念: i:輸入 o:輸出 clk:時鐘 src:源 div:分頻/降頻 inv:翻轉 invert sel:選擇 slave:外設 master:cpucpu通過uart串口訪問上位機流程:
  • ESP8266到底有幾個串口?串口實例說明
    打開APP ESP8266到底有幾個串口?串口實例說明 發表於 2019-08-03 11:45:48 問題:ESP8266有幾個串口? 答:一個半。 先說一個完整的,這個比較常用。 以第三節生成的工程為例。咱們做一些修改。
  • python3腳本篇1-串口通訊腳本
    前言本文我們來學習Python軟體包pyserial的使用,硬體採用wemos D1開發板,直接燒錄串口章節代碼即可,本文主要編寫PC端Python腳本,完成腳本和外接串口設備通訊的功能。一、基礎知識1.pyserial簡介:pyserial模塊是python和串口設備通訊的package,串口是計算機上比較通用的通訊協議,串口設備通過USB插入電腦,python通過pyserial模塊就可以完成和串口設備的通訊,
  • uart接口有什麼特點與功能
    認識UART接口   嵌入式裡面說的串口,一般是指UART口, 但是我們經常搞不清楚它和COM口的區別, 以及RS232, TTL等關係, 實際上UART,COM指的物理接口形式(硬體), 而TTL、RS-232是指的電平標準(電信號)。
  • STM32單片機學習(3) 串口中斷通信
    /** * 軟體功能: 串口實驗(軟體延時方式)* */#include "stm32f10x.h"#include#include "delay.h"u8 uart1_buf[20];int count=0; //字符串長度int flag=0; void RCC_Configuration(void);void GPIO_Configuration(void);void NVIC_Configuration(void);void USART1_Configuration
  • 串口轉乙太網實現了TCP/IP的嵌入式協議轉換
    打開APP 串口轉乙太網實現了TCP/IP的嵌入式協議轉換 zstel 發表於 2020-12-02 12:17:36 串口轉乙太網模塊是嵌入式設備、單片機和物聯網採集系統基於TCP/IP協議接入網絡的一種方便、穩定的解決方案。
  • 單片機通信uart和modbus有什麼區別
    網絡可支持247個之多的遠程從屬控制器,但實際所支持的從機數要由所用通信設備決定。採用這個系統,各PC可以和中心主機交換信息而不影響各PC執行本身的控制任務。   用戶選擇想要的模式,包括串口通信參數(波特率、校驗方式等),在配置每個控制器的時候,在一個Modbus網絡上的所有設備都必須選擇相同的傳輸模式和串口參數。所選的ASCII或RTU方式僅適用於標準的Modbus網絡,它定義了在這些網絡上連續傳輸的消息段的每一位,以及決定怎樣將信息打包成消息域和如何解碼。
  • STM32教程(七)HAL庫之STM32串口USART的使用教程!
    然後向我們之前分析GPIO的庫函數一樣,打開stm32f4xx_hal_uart.h和stm32f4xx_hal_uart.c文件,有如下可以供我們使用的函數:但是我們最常用的也就是發送和接收相關的函數,包括阻塞方式、中斷方式、還有DMA方式。
  • MicroPython 玩轉硬體系列4:串口小實驗
    引言本篇介紹ESP32上通過MicroPython實現串口數據的收發。2.串口發送代碼如下:from machine import UART,Pinuart = UART(2, baudrate=115200, rx=13,tx=12,timeout=10)uart.write(&34;)
  • 如果串口驅動有問題,怎麼調
    裸板很簡單,但是串口驅動還是挺複雜的;另外基本上所有晶片的內核源碼中基本上都會有串口驅動。所以我認為對於串口,我們只要會APP編程即可,不需要去寫它的驅動程序。現在有2個問題:怎麼寫串口APP?如果串口驅動有問題,怎麼調?第1個問題挺簡單,百度搜搜就可以找到源碼。
  • STM32的串口(UART)及串口通信原理
    串口是我們的大多數微控制單元(MCU)都具有的基本的外部接口,一般串口最基本的功能就是調試,又能做數據通信的接口(數據量要小一些)。>    1、電平標準     TTL是常見的模塊的通訊電平標準:串口wifi、串口藍牙(4針接口:VCC、GND、TXD、RXD)     232一般是數據通訊接口:桌上型電腦的主機背後的九針接口
  • 嵌入式五種重要概念串口、COM口、TTL、RS232、RS485的區別詳解
    打開APP 嵌入式五種重要概念串口、COM口、TTL、RS232、RS485的區別詳解 發表於 2017-11-16 14:00:01
  • 分析串口、COM口,UART,TTL、RS232、RS485
    先給大家來點簡單的乾貨,總結幾個關於串口、COM口、UART口, TTL、RS-232、RS-485的關鍵點,便於記憶,一起來看看吧:1、串口和COM埠是指物理接口形式串口、COM口、UART口:COM埠是串行通信埠,稱為串口
  • STM32F407的UART串口初始化
    這裡只使用了兩根線的最簡單串口設置。 硬體環境:STM32F4-Discovery 軟體環境:MDK4.7a 實現的功能:1、串口初始化, 2、通過串口發送數據 3、中斷方式接收數據,並將接收到的數據回送。
  • STM32F4的HAL庫開啟串口空閒中斷
    串口接收數據時,開啟空閒中斷後可在接收完成觸發中斷,再去做進一步處理,但找了半天沒找掉HAL庫的使能某中斷的函數,以及判斷是哪個中斷觸發的函數,原來在stm32f4xx_hal_uart.h中有相關宏定義。
  • STM32串口喚醒STOP模式的實現
    二、串口喚醒STOP模式的思路1、我們知道STOP模式只能外部中斷或事件喚醒,那麼想像一下,在STM32進行STOP模式之前,是不是可以先將UART_RX對應的GPIO引腳配置為外部中斷引腳,而串口接收到字符相當於接收到01010...這樣的高低電平,從二可以喚醒串口,當喚醒之後,我們再馬上重新初始化串口,把UART_RX