STM32入門之串列埠

2021-08-20 19:34:28 字數 2760 閱讀 5305

串列埠:串列埠就是stm32與外部通訊的橋梁!是一種簡單、常用的通訊方式。串列埠是stm32內部的乙個外設!

串列埠理論知識

一、串列埠的組成

1)串列埠的io : txd-->資料的傳送  rxd -->資料的接收 gnd -->共地

接線方式:

串列埠屬於序列通訊方式 。低位先發!!

全雙工:可以同時實現資料的傳送和接收!

半雙工:同一時間只能接收或者傳送資料!

單工:  只能傳送資料,只能接收資料!

2)  傳送器 : 用於資料的傳送。

啟動傳送器

: cr1 的te

位必須置

1 3)  接收器:用於資料的接收。

4)  波特率發生器:用於決定通訊的速度。

二、usart 字元說明  (資料幀)

1+8+1 =10 位.

如果是9600 波特率,通訊速度=9600 /10 -> 960 個位元組

三 、資料的傳送

1)必須判斷(等待)傳送資料暫存器為空,這時才能傳送資料。也就是txe 這位為1

2)判斷 傳送完成,sr暫存器的 tc位為1,也說明可以再次傳送資料!!!

void usart1_send(chardat)

四 、資料的接收

讀取資料暫存器不為空 的時候才可以讀取資料。sr暫存器的 rxen =1

u8 usart1_res(void)

五 、波特率發生器

1)選擇合適的過取樣方法

a)   16

倍over8=0

;可以增加接收器對時鐘的容差。

b)   8倍     over8=1  ; 速度快,但是容差降低。

2) 波特率的生成

公式:

over8=0時

tx/rx : -->波特率的大小 ,如 9600,115200;

fck  : 串列埠的時鐘頻率的大小,不同的串列埠它的時鐘頻率是不一樣。以串列埠1為例說明.

usart1 和usart6 -->   fck  = 84m(m4)

usart2-usart5   ->   fck  = 42m(m4)

usart1                 -->  fck  = 72m(m3)

usart2 usart3   -->    fck = 36m(m3)

usartdiv :

寫進波特率暫存器的值。

9600    ->              usartdiv =546.875

115200 ->              usartdiv = 45.573 (約等於)

波特率暫存器 (usart_brr)

只用低16位。

4-15 位用於存放usartdiv的整數部分

0-3   位用於存放 usartdiv的小數部分。(over8=0)

假設用的是9600,那麼就要把546.875寫到usart_brr暫存器中?

也就是 546 怎麼寫到 4-15位?(0.875 * 16= ) 寫到0-3位????

串列埠配置

一、初始化步驟

1)       引腳初始化

2)       開串列埠時鐘

3)       配置模式 (全雙工模式)

4)       配置資料幀 (乙個起始位,8個資料位)

5)       配置校驗  (不使用校驗)和資料流

6)       配置波特率

7)       使能。

二、資料的傳送和接收函式

void usartx_send(chardat)

u8 usartx_res(void)

三、printf函式

1) 修改fputc函式

//重定義

fputc

函式int fputc(int ch,file *f)

2)printf使用環境

法1. target——code generation——選中use microlib

法2.//加入以下**,支援printf函式,而不需要選擇use microlib    

#if 1

#pragmaimport(__use_no_semihosting)            

//標準庫需要的支援函式

struct __file

;file __stdout;      

//定義

_sys_exit()

以避免使用半主機模式

_sys_exit(int x)

STM32之串列埠

名稱 stm32之串列埠 說明 對於stm32的串列埠通訊來說,從外部看,和c51差不多。從內部看,啊。我還不了解。從使用上說,也是需要先配置usart,然後通過終端或者輪詢的方式接受或者輸出資料。由於有了韌體庫函式的幫助,stm32的串列埠配置起來比c51還要方便不少。本實驗完成的是輸入輸出重定向...

STM32之串列埠原理

串列埠通訊定義 串列埠是計算機上一種非常通用裝置通訊的協議。大多數計算機包含兩個基於rs232的串列埠。串列埠同時也是儀器儀表裝置通用的通訊協議 很多gpib相容的裝置也帶有rs 232口。同時,串列埠通訊協議也可以用於獲取遠端採集裝置的資料。串列埠通訊原理 串列埠通訊的概念非常簡單,串列埠按位 b...

STM32之串列埠通訊

一 rs232通訊協議 1 概念 個人計算機上的通訊介面之一,由電子工業協會 electronic industries association,eia 所制定的非同步傳輸標準介面。2 電氣特性 邏輯1 mark 3v 15v 邏輯0 space 3 15v 3 介面 實現全雙工非同步通訊只需要三根...