详细介绍stm32的APB与AHB,尤其解析RCC_APB2PeriphClockCmd这个函数
时间: 2024-05-10 11:17:37 浏览: 361
在STM32中,AHB(Advanced High-performance Bus)和APB(Advanced Peripheral Bus)是两种总线。AHB用于高速设备连接,如DMA(直接存储器访问)控制器和高速存储器(如SRAM)。APB用于低速设备连接,如GPIO(通用输入/输出)和定时器。
在STM32中,RCC(Reset and Clock Control)模块控制系统时钟和外设时钟。RCC模块有三个部分:AHB时钟,APB1时钟和APB2时钟。
RCC_APB2PeriphClockCmd函数的作用是控制APB2总线上的外设时钟。这个函数的原型如下:
```c
void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState);
```
其中,RCC_APB2Periph是一个32位的掩码,用于指定要启用/禁用的外设。NewState参数是一个功能状态,用于指定要启用还是禁用外设时钟。
例如,要启用USART1和GPIOA的时钟,可以使用以下代码:
```c
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1 | RCC_APB2Periph_GPIOA, ENABLE);
```
这将启用USART1和GPIOA的时钟。如果要禁用它们的时钟,可以将ENABLE更改为DISABLE。
总之,APB和AHB总线都是用于连接外设的总线,但AHB总线用于高速设备连接,APB总线用于低速设备连接。RCC模块用于控制系统时钟和外设时钟。RCC_APB2PeriphClockCmd函数用于控制APB2总线上的外设时钟,其作用是启用或禁用指定的外设时钟。
阅读全文