ahb是高速匯流排,是一種系統匯流排,它主要負責連線處理器、dma等一些內部介面。ahb 系統由主模組、從模組和基礎結構3部分組成,整個ahb匯流排上的傳輸都由主模組發出,由從模組負責回應。
apb是低速匯流排,它主要負責連線外圍裝置,它又分為apb1和apb2,它的匯流排架構不像 ahb支援多個主模組,在apb裡面唯一的主模組就是apb 橋。apb橋就是連線ahb和apb中間的玩意。
apb1最大時鐘頻率為36mhz
apb2最大時鐘頻率為72mhz
看下圖
在stm32f1中,不同的外設接在不同的apb匯流排上,以下是詳細的分布:
#define rcc_apb1periph_tim2 ((uint32_t)0x00000001)
#define rcc_apb1periph_tim3 ((uint32_t)0x00000002)
#define rcc_apb1periph_tim4 ((uint32_t)0x00000004)
#define rcc_apb1periph_tim5 ((uint32_t)0x00000008)
#define rcc_apb1periph_tim6 ((uint32_t)0x00000010)
#define rcc_apb1periph_tim7 ((uint32_t)0x00000020)
#define rcc_apb1periph_tim12 ((uint32_t)0x00000040)
#define rcc_apb1periph_tim13 ((uint32_t)0x00000080)
#define rcc_apb1periph_tim14 ((uint32_t)0x00000100)
#define rcc_apb1periph_wwdg ((uint32_t)0x00000800)
#define rcc_apb1periph_spi2 ((uint32_t)0x00004000)
#define rcc_apb1periph_spi3 ((uint32_t)0x00008000)
#define rcc_apb1periph_usart2 ((uint32_t)0x00020000)
#define rcc_apb1periph_usart3 ((uint32_t)0x00040000)
#define rcc_apb1periph_uart4 ((uint32_t)0x00080000)
#define rcc_apb1periph_uart5 ((uint32_t)0x00100000)
#define rcc_apb1periph_i2c1 ((uint32_t)0x00200000)
#define rcc_apb1periph_i2c2 ((uint32_t)0x00400000)
#define rcc_apb1periph_usb ((uint32_t)0x00800000)
#define rcc_apb1periph_can1 ((uint32_t)0x02000000)
#define rcc_apb1periph_can2 ((uint32_t)0x04000000)
#define rcc_apb1periph_bkp ((uint32_t)0x08000000)
#define rcc_apb1periph_pwr ((uint32_t)0x10000000)
#define rcc_apb1periph_dac ((uint32_t)0x20000000)
#define rcc_apb1periph_cec ((uint32_t)0x40000000)
#define rcc_apb2periph_afio ((uint32_t)0x00000001)
#define rcc_apb2periph_gpioa ((uint32_t)0x00000004)
#define rcc_apb2periph_gpiob ((uint32_t)0x00000008)
#define rcc_apb2periph_gpioc ((uint32_t)0x00000010)
#define rcc_apb2periph_gpiod ((uint32_t)0x00000020)
#define rcc_apb2periph_gpioe ((uint32_t)0x00000040)
#define rcc_apb2periph_gpiof ((uint32_t)0x00000080)
#define rcc_apb2periph_gpiog ((uint32_t)0x00000100)
#define rcc_apb2periph_adc1 ((uint32_t)0x00000200)
#define rcc_apb2periph_adc2 ((uint32_t)0x00000400)
#define rcc_apb2periph_tim1 ((uint32_t)0x00000800)
#define rcc_apb2periph_spi1 ((uint32_t)0x00001000)
#define rcc_apb2periph_tim8 ((uint32_t)0x00002000)
#define rcc_apb2periph_usart1 ((uint32_t)0x00004000)
#define rcc_apb2periph_adc3 ((uint32_t)0x00008000)
#define rcc_apb2periph_tim15 ((uint32_t)0x00010000)
#define rcc_apb2periph_tim16 ((uint32_t)0x00020000)
#define rcc_apb2periph_tim17 ((uint32_t)0x00040000)
#define rcc_apb2periph_tim9 ((uint32_t)0x00080000)
#define rcc_apb2periph_tim10 ((uint32_t)0x00100000)
#define rcc_apb2periph_tim11 ((uint32_t)0x00200000)
當我們用到哪乙個外設的時候,我們在這找到它對應的匯流排,然後使能時鐘 STM32之SPI匯流排協議
spi匯流排協議是一種序列外圍裝置介面,是motorola公司推出的一種三線同步序列接 術,spi是一種高速的 全雙工 同步的通訊匯流排,並且在晶元上的物理介面只需要占用4根線,節約了晶元的管腳。spi是乙個環形匯流排結構,由sck cs mosi miso構成,時序也很簡單,主要是在sck的控制下...
STM32的匯流排AMBA AHB APB
一 匯流排的簡單介紹 處理器無疑是計算機中最重要的部件,但並不是唯一的部件。一台計算機也需要隨機訪問儲存器 ram 來存放機器碼指令以便讓處理器執行。計算機還必須有一些方法使這些指令進入ram 輸入裝置 以及一些方法使程式執行結果得以看見 輸出裝置 ram是易失性的,當斷電時,它的內容就會丟失。所以...
STM32匯流排架構筆記
amba是一種soc system of chip 匯流排標準,有amba1.0 2.0 3.0標準。利用amba定義的一款匯流排架構 ahb advanced high performance bus 高階高效能匯流排 asb advanced system bus 高階系統匯流排 apb adv...