STM32 UART/USART初始化時鐘使能
阿新 • • 發佈:2018-12-17
在學習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支援同步。