STM32SPI、APB等总线关系总结

时钟图
在这里插入图片描述
APB1的最高频率是36MHz
APB2的最高频率是72MHz
经过总线桥AHB–APB,通过设置分频,可由HCLK得到 PCLK1与PCLK2时钟,而PCLK1和PCLK2一般也默认配置为其最高工作频率36M和72M,PCLK2对应APB2外设,PCLK1对应APB1外设。
HCLK :AHB总线时钟,由系统时钟SYSCLK 分频得到,一般不分频,等于系统时钟
SYSCLK 系统时钟,最大72MHz。
SPI时钟最快18MHZ,可超频。
SPI1时钟由APB2时钟分频而来,可以选择2、4、8、16、32、64、128、256这几个分频系数。而手册规定STM32的SPI时钟最快是18MHz。对于STM32F103的SPI1接口时钟,由72M的PCLK2分频得到,所以分配系数大于等于4(72M/4 = 18M)。
STM32F103的SPI2/3接口时钟,在APB1下面,由36M的PCLK1分频得到,所以分配系数大于等于2(36M/2 = 18M)。
总线接口:
APB1(最大36MHZ)下连:DA、USB、SPI、I2C、串口2345、普通TIM
APB2(最大72MHZ)下连:串口1、AD、I/0、高级TIM
APB1下的外设
在这里插入图片描述
APB2下的外设
在这里插入图片描述
AHB下的外设
之前好奇的DMA就在AHB下面。
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);
所以使能DMA时钟因为在AHB下所以这样写
因为AHB用于高性能的CPU DMA DSP等之间的连接,即数据吞吐量大,APB用于低宽带的周围外设。
在这里插入图片描述

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
STM32F103是一款基于ARM Cortex-M3内核的微控制器,它有两个APB总线APB1和APB2。APB1的最高工作频率为36MHz,而APB2的最高工作频率为72MHz。APB2负责ADC、串口1、SPI1、高级TIMI/O、EXTI和AFIO,而APB1负责DAC、USB、I2C、CAN、串口2345、SPI23和普通TIM。 如果您想了解如何在STM32F103上使用APB1和APB2,可以参考以下步骤: 1. 首先,您需要在STM32F103上配置外设时钟。您可以使用RCC寄存器来配置外设时钟,例如: ```c RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); ``` 这将启用GPIOA的时钟,使您能够使用它。 2. 接下来,您需要初始化外设。例如,如果您想初始化USART1,可以使用以下代码: ```c USART_InitTypeDef USART_InitStructure; USART_InitStructure.USART_BaudRate = 9600; USART_InitStructure.USART_WordLength = USART_WordLength_8b; USART_InitStructure.USART_StopBits = USART_StopBits_1; USART_InitStructure.USART_Parity = USART_Parity_No; USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; USART_Init(USART1, &USART_InitStructure); USART_Cmd(USART1, ENABLE); ``` 这将初始化USART1,使其可以进行数据传输。 3. 最后,您可以使用外设。例如,如果您想从USART1接收数据,可以使用以下代码: ```c while (USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == RESET); char data = USART_ReceiveData(USART1); ``` 这将等待USART1接收到数据,并将其存储在data变量中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值