STM32CubeMX基于HAL庫實作簡單串口通信
板子:STM32F103C8
編譯工具:Keil+STM32CubeMX
燒錄工具:FlyMcu
串口除錯程式:XCOM
實驗要求:
1)設定波特率為115200,1位停止位,無校驗位;
2)STM32系統給上位機(win10)連續發送“hello windows!”
文章目錄
- STM32CubeMX基于HAL庫實作簡單串口通信
- 一、串口通訊原理
- 1. 簡介:
- 2. USART:
- 2.1 USERT簡介:
- 2.1 USERT特性:
- 3. 串口通信程序
- 二、實驗
- 1. STM32CubeMX
- 2. Keil TIME!
- 3. 實機運行
- 3.1 使用FlyMcu燒錄hex檔案
- 3.2 使用XCOM接收資訊
- 三、總結
- 四、參考文章
一、串口通訊原理
1. 簡介:
在串行通信中,一個字符一個字符地傳輸,每個字符一位一位地傳輸,并且傳輸一個字符時,總是以“起始位”開始,以“停止位”結束,在進行傳輸之前,雙方一定要使用相同的波特率設定,波特率就是每秒鐘傳輸的資料位數,常用的兩種基本串行通信方式包括同步通信和異步通信,我們通常使用的是異步通信,異步通信規定傳輸的資料格式由起始位(start bit)、資料位(data bit)、奇偶校驗位(parity bit)和停止位(stop bit)組成,串口通訊有HAL 庫輪詢,中斷,DMA 三種通信模式:
- 輪詢方式:CPU不斷查詢IO設備,如設備有請求則加以處理,例如CPU不斷查詢串口是否傳輸完成,如傳輸超過則回傳超時錯誤,輪詢方式會占用CPU處理時間,效率較低,
- 中斷控制方式:當I/O操作完成時,輸入輸出設備控制器通過中斷請求線向處理器發出中斷信號,處理器收到中斷信號之后,轉到中斷處理程式,對資料傳送作業進行相應的處理,
- 直接記憶體存取技術(DMA)方式:所謂直接傳送,即在記憶體與IO設備間傳送一個資料塊的程序中,不需要CPU的任何中間干涉,只需要CPU在程序開始時向設備發出“傳送塊資料”的命令,然后通過中斷來得知程序是否結束和下次操作是否準備就緒,
2. USART:

2.1 USERT簡介:
USART,英文全稱——Universal Synchronous/Asychronous Receiver/Transmitter,即通用同步/異步串行收發模塊,該介面是一個高度靈活的串行通信設備,它提供了一種靈活的方法與使用工業標準NRZ異步串行資料格式的外部設備之間進行全雙工資料交換,USART利用分數波特率發生器提供寬范圍的波特率選擇,它支持同步單向通信和半雙工單線通信,也支持LIN(區域互連網),智能卡協議和IrDA(紅外資料組織)SIR ENDEC規范,以及調制解調器(CTS/RTS)操作,它還允許多處理器通信,使用多緩沖器配置的DMA方式,可以實作高速資料通信,
在STM32中文參考手冊第516頁也做了比較詳細的介紹,
2.1 USERT特性:
.
3. 串口通信程序

二、實驗
1. STM32CubeMX
-
搜索框中輸入STM32F103C8選擇對應芯片

-
雙擊芯片進入專案/點擊start Project -
右側欄中點擊
A->Z->USERT1 -
Mode選擇
Asynchronous異步通信 -
設定引數:(以下在最新版本地Cube中是默認引數,可以跳過這一步)
- 波特率:115200 Bits/s
- 字符長度:8 Bits
- 停止位 Stop Bits:1
- 校驗位 Parity:None

-
專案配置四步驟
- 設定名稱;Basic;IDE是MDK-ARM
- Code Generator中勾選此選項生成對應.c和.h檔案方便管理


2. Keil TIME!
在Cube中Generate Code后選擇open project跳轉至Keil

- 來到main.c中的while回圈中添加下列代碼:
//發送的資料
char data[]="hello windows!\n";
//發送
HAL_UART_Transmit(&huart1, (uint8_t *)data, 15, 0xffff);
//延時1s
HAL_Delay(1000);
-
配置魔法棒(一勞零逸)

-
build專案->debug
-
打開UART1視窗以及仿真示波器視窗

-
Run!!!!

這里呼叫了WIN10的自帶計時器
3. 實機運行
3.1 使用FlyMcu燒錄hex檔案
選擇串口后先清空芯片再點擊開始編程

3.2 使用XCOM接收資訊

三、總結
USART功能非常強大,本次實驗只進行了最基礎的操作,若想繼續探究,還需多多練習,
四、參考文章
醉意丶千層夢:基于HAL庫實作stm32簡單串口通信
安迪西:STM32CubeMX系列|串口通訊
江南煙膿雨:STM32F103串口通信USART小試牛刀
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/337822.html
標籤:其他
上一篇:續簽了
