介紹
試用 STM32 UART 功能
會透過 RealTerm 和 STM32L476RG 溝通,並用 DMA 接收訊息
根據 User manual,USART2 預設會連接 ST-LINK,要連接外部設備的話要修改 solder bridge
ioc 設置
- Connectivity 可以設置 USART2
- mode 從 disable 改選 Asynchronous
- Parameters Settings 可以設置各種資訊
- Baud Rate
- Word Length
- Parity
- Stop Bits
- DMA Setting
- Add 一個 RX
- Mode 改成 circular,並打開 memory 的 increment address
- increment address 是因為資料是用 array 存
- circular 是當資料滿了後,會回到 zero position
- Mode 改成 circular,並打開 memory 的 increment address
- Add 一個 RX
- NVIC Setting
- 設置 DMA 應該就會自動設置一個 interrupt,檢查一下
程式碼
發送
|
|
接收
|
|
interrupt
在 hal_uart.c 有
|
|
當 DMA 滿了就會呼叫這個 function
實驗
|
|
當 20 個 Bytes 儲存滿了就回傳資訊給電腦
RealTerm
Display
- 勾選 Half Duplex
- 發送的訊息會顯示綠色,接收的是黃色
Port
- 設置 Baud 和其他有的沒的
- 選 open
Send
- EOL 可以勾選 CRLF
- 打一些文字後按 Send ASCII