RCC_APB1PeriphClockCmd和RCC_APB2PeriphClockCmd有什么区别
时间: 2024-10-29 22:09:54 浏览: 37
`RCC_APB1PeriphClockCmd` 和 `RCC_APB2PeriphClockCmd` 是STM32微控制器(如F4系列)上常用的函数,用于控制高级定时器、串口、GPIO等外设的时钟开关。它们的区别在于:
1. **作用域**:
- `RCC_APB1PeriphClockCmd`: 这个函数主要用于设置APB1总线(通常包含像USART、I2C、SPI以及GPIOA至GPIOE的端口)的时钟。APB1是第二级总线,速度相对较快。
2. **涉及的外设**:
- 当你需要控制APB1总线上某一特定外设的时钟开关闭合时,例如开启某个串口的时钟,就需要用到这个函数。
3. **对应外设**:
- APB1一般连接一些常用而对实时性能需求不高的外设。
相比之下,`RCC_APB2PeriphClockCmd` 控制的是 APB2 总线,它通常包括定时器(如TIMx)、CAN、USB等设备,这些外设对于系统的实时性和通信性能要求较高。
**示例用法**:
```c
// 开启APB1上USART1的时钟
RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART1, ENABLE);
// 关闭APB2上TIM2的时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM2, DISABLE);
```
相关问题
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE)什么意思
这两行代码是用来配置STM32的时钟和GPIO引脚的。第一行代码`RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE)`是用来使能TIM3外设的时钟,使其可以正常工作。`RCC_APB1PeriphClockCmd`函数是用来控制APB1总线上的外设时钟的,`RCC_APB1Periph_TIM3`表示要使能的外设是TIM3。第二行代码`RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE)`是用来使能GPIOA引脚的时钟,使其可以正常工作。`RCC_AHB1PeriphClockCmd`函数是用来控制AHB1总线上的GPIO引脚时钟的,`RCC_AHB1Periph_GPIOA`表示要使能的GPIO引脚是GPIOA。
#### 引用[.reference_title]
- *1* *2* *3* [STM32F407的外部中断设置_RCC_APB2PeriphClockCmd_RCC_APB2Periph_SYSCFG](https://blog.csdn.net/gtkknd/article/details/52851081)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
这两行代码是用来使能 USART1 和 GPIOA 的时钟,以便能够使用它们对应的外设。
第一行代码 `RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE)` 是用来使能 USART1 外设的时钟。`RCC_APB2Periph_USART1` 是一个宏定义,用来指定要使能的外设,这里是 USART1。`ENABLE` 是一个宏定义,表示使能外设的操作。
第二行代码 `RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE)` 是用来使能 GPIOA 外设的时钟。`RCC_APB2Periph_GPIOA` 是一个宏定义,用来指定要使能的外设,这里是 GPIOA。
通过调用这两个函数,可以使能 USART1 和 GPIOA 的时钟,从而可以正常使用它们对应的功能。
阅读全文