stm32f103c8t6最小系统板PB端口设置初始高电平为多少
时间: 2025-07-21 13:48:19 浏览: 3
### STM32F103C8T6 PB端口初始高电平设置
STM32F103C8T6是一款基于ARM Cortex-M3内核的微控制器,其具有丰富的外设资源和灵活的GPIO配置能力。为了将PB端口设置为初始高电平,需要通过配置相应的寄存器完成。
#### 配置流程说明
STM32 的 GPIO 寄存器分为低半部分(CRL)和高半部分(CRH),分别用于控制引脚 0-7 和 8-15 的模式与功能[^1]。对于 PB 端口,若要将其某个引脚初始化为高电平输出,则需执行以下操作:
1. **使能时钟**
使用 `RCC_APB2PeriphClockCmd` 函数启用 GPIOB 的时钟供应。
2. **配置 GPIO 模式**
设置 GPIO 初始化结构体中的 `GPIO_Mode` 参数为 `GPIO_Mode_Out_PP` 表示推挽输出模式,并指定目标引脚号。例如,针对 PB5 引脚,应设置如下:
```c
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
```
3. **写入初始值**
在初始化完成后,可以通过调用 `GPIO_SetBits` 或者直接访问 BSSR(Bit Set/Reset Register)寄存器来设定引脚的初始状态为高电平。例如:
```c
GPIO_SetBits(GPIOB, GPIO_Pin_5);
```
4. **默认复位值**
如果未显式设置任何值,默认情况下所有 GPIO 引脚会被复位至输入浮空状态(Input Floating Mode)。此时对应的寄存器复位值通常为 `0x44444444`,表示所有引脚均处于输入模式[^1]。因此,在实际应用中必须主动编写代码以改变这种默认行为并赋予期望的功能属性。
以下是完整的 C 语言实现例子:
```c
#include "stm32f10x.h"
void GPIO_Configuration(void){
GPIO_InitTypeDef GPIO_InitStruct;
/* Enable the peripheral clock */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
/* Configure pin as output push-pull mode at max speed of 10 MHz*/
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_5;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_10MHz;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOB,&GPIO_InitStruct);
/* Set initial high level on Pin 5 */
GPIO_SetBits(GPIOB, GPIO_Pin_5);
}
```
以上代码片段展示了如何正确地初始化 STM32F103C8T6 微控制器上的 PB5 引脚成为具备初始高电平特性的数字输出端口。
---
阅读全文
相关推荐



















