stm32F103 CRH寄存器 对应407的寄存器
时间: 2025-08-21 15:11:26 浏览: 5
STM32F103和STM32F407是STMicroelectronics推出的基于ARM Cortex-M内核的微控制器系列,分别属于F1和F4系列。F1系列基于Cortex-M3内核,而F4系列基于性能更强的Cortex-M4内核。由于架构上的差异,某些寄存器在两个系列中的实现方式有所不同。
在STM32F103中,GPIO配置通过**CRL**和**CRH**寄存器完成,这两个寄存器分别控制端口的低8位和高8位引脚配置。CRH寄存器用于配置端口高8位(Pin 8–15)的模式和输出类型,每个引脚占用4位。
在STM32F407中,GPIO配置机制发生了变化,引入了更灵活的寄存器组。STM32F407的GPIO配置通过以下寄存器完成:
- **MODER**(Mode Register):用于设置每个引脚的工作模式,如输入、输出、复用功能或模拟模式。
- **OTYPER**(Output Type Register):用于选择输出类型,如推挽或开漏。
- **OSPEEDR**(Output Speed Register):设置输出引脚的速度。
- **PUPDR**(Pull-up/Pull-down Register):配置上拉、下拉或无上/下拉电阻。
- **AFRL/AFRH**(Alternate Function Registers):用于选择复用功能模式下的具体功能。
因此,STM32F103中的**CRH寄存器**功能在STM32F407中被多个寄存器共同实现,其中**MODER**、**OTYPER**、**OSPEEDR**和**PUPDR**分别承担了原CRH中关于引脚模式、输出类型、速度和上下拉配置的功能[^1]。
例如,在STM32F103中设置CRH寄存器以配置某个引脚为推挽输出模式:
```c
GPIOx->CRH |= (GPIO_CRH_MODE8_0 | GPIO_CRH_MODE8_1); // 设置Pin 8为输出模式
GPIOx->CRH &= ~GPIO_CRH_CNF8; // 设置为推挽输出
```
而在STM32F407中,等效配置如下:
```c
GPIOx->MODER |= GPIO_MODER_MODER8_0; // 设置Pin 8为输出模式
GPIOx->OTYPER &= ~GPIO_OTYPER_OT_8; // 设置为推挽输出
GPIOx->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR8; // 设置输出速度
GPIOx->PUPDR &= ~GPIO_PUPDR_PUPDR8; // 设置为无上/下拉
```
这种变化使得STM32F407的GPIO配置更加灵活,但也要求开发者在移植代码时注意寄存器的不同[^1]。
阅读全文
相关推荐




















