HAL 庫學習筆記 六 在應用中自由修改波特率

2021-10-07 16:17:44 字數 1187 閱讀 6390

該暫存器高 16 位無效,最低 4 位為小數部分,其餘部分為整數部分。

通過配置波特率暫存器 brr 即可實現在應用中自由高效地修改任意串列埠的波特率,實現外掛程式裝置的寬波特率相容。

uart波特率計算公式:

u sa

rtdi

v=di

v_ma

ntis

sa+d

iv_f

ract

ion8

∗(2−

over

8)usartdiv=div\_mantissa+\dfrac

usartd

iv=d

iv_m

anti

ssa+

8∗(2

−ove

r8)d

iv_f

ract

ion​

16倍取樣的公式:

t x/

rxbu

ad=p

clk16

∗usa

rtdi

vtx/rx\ buad = \dfrac

tx/rxb

uad=

16∗u

sart

divp

clk​

建議參考 stm32f4xx_hal_uart.c --> uart_setconfig() 中暫存器 brr 配置部分。

其中 usart6\usart1 屬於 apb2 時鐘匯流排;uart8\uart7\uart5\uart4\usart3\usart2 屬於 apb1 時鐘匯流排。

該函式使用16倍取樣,具體請根據串列埠配置進行選擇,如果使用8倍取樣,需要將uart_brr_sampling16改為uart_brr_sampling8。

usart_brr_configuration

(uart_handletypedef *huart, uint32_t baudrate)

else

}else

else

}}

STM32 HAL庫學習筆記

1 系統時鐘 一般用stm32cube生成,使用者只需要會用stm32cube就行。2 gpio輸出void led gpio config void 3 gpio輸入void key gpio config void 4 外部中斷void exti key config void void ext...

STM32 HAL庫學習筆記

1 普通函式與 函式的區別 對普通函式的呼叫 呼叫程式發出對普通函式的呼叫後,程式執行立即轉向被呼叫函式執行,直到被呼叫函式執行完畢後,再返 用程式繼續執行。從發出呼叫的程式的角度看,這個過程為 呼叫 等待被呼叫函式執行完畢 繼續執行 對 函式呼叫 呼叫程式發出對 函式的呼叫後,不等函式執行完畢,立...

stm32HAL庫學習 UART學習筆記

一 串列埠輸出列印重定向printf,如下 int fputc int ch,file f hal uart transmit huart1,temp,1,1000 return ch int fgetc file f 用作程式除錯輸出時,可以使用一組巨集定義,方便開發完成後關閉printf 除錯日...