stm32f103c8t6串口分布
时间: 2025-05-10 09:28:28 浏览: 19
### STM32F103C8T6 串口引脚分布及配置方法
#### 串口引脚分布
STM32F103C8T6 微控制器支持多个 USART 接口,其中部分引脚可以被配置为串口通信功能。具体来说:
- **USART1** 的 TX 和 RX 功能分别映射到 PA9 和 PA10 引脚上[^2]。
- **USART2** 的 TX 和 RX 功能则对应于 PA2 和 PA3 引脚。
这些引脚可以通过 GPIO 复用功能启用其对应的串口功能。
---
#### 配置方法
为了使能并正确配置 STM32F103C8T6 上的串口功能,通常需要完成以下几个方面的设置:
1. **时钟使能**
在使用任何外设之前,必须先通过 RCC(Reset and Clock Control)模块开启相应的时钟信号。对于 USART1 和 USART2,需执行如下操作:
```c
// 开启GPIOA和USART1/USART2的时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_USART1, ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE);
```
2. **GPIO 初始化**
将指定的 GPIO 引脚配置为复用推挽模式以实现串口功能。以下是针对 USART1 (PA9, PA10) 和 USART2 (PA2, PA3) 的初始化代码示例:
```c
GPIO_InitTypeDef GPIO_InitStruct;
// 配置USART1_TX(PA9)和USART1_RX(PA10)
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_9 | GPIO_Pin_10;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF_PP; // 复用推挽输出
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStruct);
// 配置USART2_TX(PA2)和USART2_RX(PA3)
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_2 | GPIO_Pin_3;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF_PP; // 复用推挽输出
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStruct);
```
3. **USART 初始化**
使用 `USART_Init` 函数来设定波特率、数据位数、停止位以及校验方式等参数。下面是一个典型的 USART 初始化函数调用例子:
```c
USART_InitTypeDef USART_InitStruct;
USART_InitStruct.USART_BaudRate = 9600; // 设置波特率为9600bps
USART_InitStruct.USART_WordLength = USART_WordLength_8b; // 数据长度为8位
USART_InitStruct.USART_StopBits = USART_StopBits_1; // 停止位为1
USART_InitStruct.USART_Parity = USART_Parity_No; // 不使用奇偶校验
USART_InitStruct.USART_HardwareFlowControl = USART_HardwareFlowControl_None; // 关闭硬件流控
USART_InitStruct.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; // 启用接收和发送模式
USART_Init(USART1, &USART_InitStruct); // 初始化USART1
USART_Init(USART2, &USART_InitStruct); // 初始化USART2
```
4. **使能 USART**
完成上述配置之后,还需要显式地启动 USART 设备才能正常工作:
```c
USART_Cmd(USART1, ENABLE); // 使能USART1
USART_Cmd(USART2, ENABLE); // 使能USART2
```
---
#### 注意事项
- BOOT 引脚应连接至 10kΩ 下拉电阻以确保设备进入正常的运行状态而非调试模式[^1]。
- 实际产品开发过程中推荐采用 SWD 接口进行固件烧录,因其占用较少的空间资源且仅需几根连线即可完成操作[^3]。
---
阅读全文
相关推荐

















