1. 程式人生 > >STM32 UART/USART初始化時鐘使能

STM32 UART/USART初始化時鐘使能

在學習STM32的過程中,我們通常會遇到使能時鐘。例如在uart_init()的函式中,我們要使能串列埠:

RCC->APB2ENR|=1<<4;//使能串列埠1的時鐘
RCC->AHB1ENR|=1<<4;//使能portra的時鐘

簡而言之,就是讓串列埠1和PA口工作。但是為什麼使能之後就能工作了呢,我們可以檢視手冊,找到STM32的系統框架圖(原子哥的資料裡有)


AHB (Advanced High performance Bus)高階效能匯流排,是系統匯流排的一種。AHB主要用於高效能模組之間的連線,如CPU,DMA等。

APB(Advancd Peripheral Bus),這是一種外圍匯流排。APB主要用於低寬頻的外圍裝置的連線,如USART。

我們在圖中可以看到,AHB->APB2->USART 1,這樣我麼就可以知道為什麼要使能APB2這個時鐘了。

同理,我們可以找到PA掛載在AHB1的總線上,所以我們要使能AHB1。

UART:  universal asynchronous receiver and transmitter通用非同步收發器。

USART:universal synchronous asynchronous receiver and transmitter通用同步非同步收發器。

uart和usart的區別在於usart支援同步。