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

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

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

STM32G431之串口詳解

嵌入式技術 ? 來源:嵌入式技術 ? 作者:嵌入式技術 ? 2022-05-31 08:29 ? 次閱讀

1.串口簡介

通用同步異步收發(fā)器(USART)提供了一種靈活的方法與使用工業(yè)標準NRZ異步串行數(shù)據(jù)格式的外部設備之間進行全雙工數(shù)據(jù)交換。 USART利用分數(shù)波特率發(fā)生器提供寬范圍的波特率選擇。它支持同步單向通信和半雙工單線通信,也支持LIN(局部互連網(wǎng)),智能卡協(xié)議和IrDA(紅外數(shù)據(jù)組織)SIR ENDEC規(guī)范,以及調制解調器(CTS/RTS)操作。它還允許多處理器通信。使用多緩沖器配置的DMA方式,可以實現(xiàn)高速數(shù)據(jù)通信。

任何USART雙向通信至少需要兩個腳:接收數(shù)據(jù)輸入(RX)和發(fā)送數(shù)據(jù)輸出(TX)。

RX:接收數(shù)據(jù)串行輸。通過過采樣技術來區(qū)別數(shù)據(jù)和噪音,從而恢復數(shù)據(jù)。

TX:發(fā)送數(shù)據(jù)輸出。當發(fā)送器被禁止時,輸出引腳恢復到它的I/O端口配置。當發(fā)送器被激活,并且不發(fā)送數(shù)據(jù)時, TX引腳處于高電平。在單線和智能卡模式里,此I/O口被同時用于數(shù)據(jù)的發(fā)送和接收。

串口特性:

● 全雙工的,異步通信
● NRZ標準格式
● 分數(shù)波特率發(fā)生器系統(tǒng)
─ 發(fā)送和接收共用的可編程波特率,最高達4.5Mbits/s
● 可編程數(shù)據(jù)字長度(8位或9位)
● 可配置的停止位-支持1 或2個停止位

2.硬件接口

在本開發(fā)板中,提供串口接口有兩個,一個是普通串口USART1,一個是低功耗串口LPUART1。LPUART1可以通過32.768 kHz驅動,波特率可達9600bps,我們這以普通串口為例。

根據(jù)原理圖,USART1_TX和PC4相連,USART1_RX和PC5相連。

poYBAGKVYYCAQzo8AANxhmKe1j8171.png#pic_center

3.串口配置

pYYBAGKVXZGAX15ZAAMcKYwnVUU522.pngpoYBAGKVXaGASG6YAACP6tLi_cM084.pngpYYBAGKVXbSAUq43AAJ2tliqR_k735.png

3.代碼生成

poYBAGKVXeKAegB0AAQOlg8c6V0532.png

3.1 printf重定向實現(xiàn)

int fputc(int c, FILE *stream)
{
  huart1.Instance->TDR=c;
  while( !(huart1.Instance->ISR&1<<7)){}
  return c;
}

3.2 串口中斷

STM32G431芯片有讀數(shù)據(jù)寄存器RDR和發(fā)送數(shù)據(jù)寄存器TDR。

讀數(shù)據(jù)寄存器RDR:

pYYBAGKVXtCAa9FBAAGOiBoiyao782.png

發(fā)送數(shù)據(jù)寄存器TDR:

pYYBAGKVXyyAL1GWAAIU_JISlzM202.png

void USART1_IRQHandler(void)
{
  /* USER CODE BEGIN USART1_IRQn 0 */
  uint8_t c;
  /* USER CODE END USART1_IRQn 0 */
  HAL_UART_IRQHandler(&huart1);
  /* USER CODE BEGIN USART1_IRQn 1 */
  c=huart1.Instance->RDR;//接收數(shù)據(jù)
  huart1.Instance->TDR=c;
  /* USER CODE END USART1_IRQn 1 */
}

3.3 主函數(shù)

poYBAGKVXjmAdeizAAM7HOXuLOM595.pngpYYBAGKVXluANNCkAAyV5pe_BCI582.pngpYYBAGKVXm-AC4tkAAGqfA9dW3I200.png
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • STM32
    +關注

    關注

    2264

    文章

    10858

    瀏覽量

    354395
  • 串口
    +關注

    關注

    14

    文章

    1540

    瀏覽量

    76080
  • USART
    +關注

    關注

    1

    文章

    195

    瀏覽量

    30768
  • HAL
    HAL
    +關注

    關注

    2

    文章

    69

    瀏覽量

    12577
收藏 人收藏

    評論

    相關推薦

    STM32CubeMX stm32g431 PLLP無法被設置是怎么回事?

    打擾了,沒問題!ADC得設置成異步時鐘! 使用了STM32CubeMX(6.9.1)開發(fā)stm32g431時,用cube配置始終,PLLP始終無法設置。我已啟用了ADC1和ADC2,我想使用PLLP作為ADC12的時鐘輸入,但是框框是灰色。
    發(fā)表于 03-14 06:43

    STM32G431無法輸出項目工程的原因?

    系統(tǒng)為 Win 7 64位,安裝的Cube MX版本為6.8.0,現(xiàn)在需要用STM32G431開發(fā)工程,已經(jīng)安裝好了1.50版本的Package包文件,現(xiàn)在的問題是無法輸出項目工程,輸出工程的時候
    發(fā)表于 03-15 07:52

    stm32g431的PG10-NRST可以當普通IO嗎?怎么設置?

    stm32g431的PG10-NRST可以當普通IO嗎,怎么設置。
    發(fā)表于 03-20 08:09

    配置STM32G431的FDCAN為普通CAN模式,為什么不能接收數(shù)據(jù)?

    我這邊配置STM32G431的FDCAN為普通CAN模式,配置如下,發(fā)送數(shù)據(jù)是成功的,其他板子也可以接收到發(fā)送的數(shù)據(jù),但是G431卻不能接收數(shù)據(jù),幫忙看一下是什么問題,謝謝。
    發(fā)表于 03-25 08:31

    STM32F302K8U6和STM32G431中內(nèi)置的運放 建立時間是多長?

    STM32F302K8U6 和STM32G431 中內(nèi)置的運放 建立時間是多長? 在手冊中未找到相關描述
    發(fā)表于 03-28 08:36

    STM32G431開發(fā)板免費試用

    STM32G431開發(fā)板高分辨率電源轉換定時器內(nèi)置各種功能,能夠釋放CPU資源并簡化開發(fā)過程;模擬外設和轉換器的性能顯著提升;高速連接技術使外部事件響應速度快;支持最新的Power?Delivery
    發(fā)表于 08-20 16:25

    STM32G431試用申請】STM32G431在模擬前端板的替代

    項目名稱:STM32G431在模擬前端板的替代試用計劃:申請理由:原來產(chǎn)品用的是stm32l100r8t6,希望申請這塊板子來評估STM32G431性能項目名稱及計劃:STM32G431
    發(fā)表于 09-06 11:34

    求一個藍橋杯大賽嵌入式組STM32G431資源包

    求一個藍橋杯大賽嵌入式組STM32G431資源包
    發(fā)表于 10-12 17:57

    STM32G431串口通信怎么使用?

    STM32G431串口通信怎么使用?
    發(fā)表于 12-08 06:30

    STM32G431嵌入式設計相關資料下載

    前言筆者今年是第一次參加藍橋杯,賽道為嵌入式設計,目前取得了國二的成績,雖說不是最好,但從中學到了許多,收獲了許多。今年我所使用的是STM32G431, 用的HAL庫,這也是我第一次學習使用HAL庫
    發(fā)表于 12-10 08:31

    STM32G431串口通信的使用步驟

    摘要本文章基于國信長天M4開發(fā)板,講述了STM32G431 串口通信的使用步驟,祝各位學生藍橋杯電子比賽取得好成績!M4開發(fā)板 串口引腳由上圖可以看出,DAP Link的串口連接在芯片
    發(fā)表于 01-11 07:21

    【合宙Air551G雙頻定位開發(fā)板試用體驗】與STM32G431通信獲取位置信息及LCD顯示

    經(jīng)過前面的與上位機測試之后,我著手做了合宙Air551G雙頻定位開發(fā)板與STM32G431的通信,并解析信息,獲取位置,LCD顯示等測試測試如下:此次測試利用STM32G431串口2
    發(fā)表于 03-29 18:50

    在什么溫度下可以檢測到STM32G431的TS_CAL2值呢?

    你好在什么溫度下檢測到 STM32G431 的 TS_CAL2 值?在數(shù)據(jù)表中報告為 130 度,而在庫“stm32g4xx_ll_adc.h”中,TEMPSENSOR_CAL2_TEMP 為 110 度謝謝
    發(fā)表于 12-26 06:35

    如何用stm32g431 DMA方式更新周期信息?

    stm32g431 DMA方式更新周期信息。
    發(fā)表于 08-05 07:25

    如何使用STM32G431芯片做DAC應用

    有人使用STM32G431芯片做DAC應用,具體來說就是通過DMA將數(shù)據(jù)從指定內(nèi)存?zhèn)魉徒oDAC數(shù)據(jù)寄存器,并由定時器觸發(fā)DAC轉換。他發(fā)現(xiàn)總是沒法實現(xiàn)該功能。這里簡單介紹下相關實現(xiàn)過程,并做些提醒
    的頭像 發(fā)表于 09-12 10:08 ?5857次閱讀