stm32f103c8t6初始化串口一和串口二
时间: 2023-06-11 19:06:37 浏览: 507
以下是 STM32F103C8T6 初始化串口一和串口二的代码示例:
串口一初始化代码:
```c
/* 定义串口一的 GPIO 引脚 */
#define USART1_GPIO_PORT GPIOA
#define USART1_TX_PIN GPIO_Pin_9
#define USART1_RX_PIN GPIO_Pin_10
/* 定义串口一的 USART 外设号 */
#define USART1_APBPERIPH RCC_APB2Periph_USART1
/* 定义串口一的波特率 */
#define USART1_BAUDRATE 115200
/* 串口一初始化函数 */
void USART1_Config(void)
{
USART_InitTypeDef USART_InitStructure;
GPIO_InitTypeDef GPIO_InitStructure;
/* 使能 USART1 外设时钟 */
RCC_APB2PeriphClockCmd(USART1_APBPERIPH, ENABLE);
/* 配置 USART1 Tx 引脚为推挽复用模式 */
GPIO_InitStructure.GPIO_Pin = USART1_TX_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(USART1_GPIO_PORT, &GPIO_InitStructure);
/* 配置 USART1 Rx 引脚为浮空输入模式 */
GPIO_InitStructure.GPIO_Pin = USART1_RX_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(USART1_GPIO_PORT, &GPIO_InitStructure);
/* 配置 USART1 */
USART_InitStructure.USART_BaudRate = USART1_BAUDRATE;
USART_InitStructure.USART_WordLength = USART_WordLength_8b;
USART_InitStructure.USART_StopBits = USART_StopBits_1;
USART_InitStructure.USART_Parity = USART_Parity_No;
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
USART_Init(USART1, &USART_InitStructure);
/* 使能 USART1 */
USART_Cmd(USART1, ENABLE);
}
```
串口二初始化代码:
```c
/* 定义串口二的 GPIO 引脚 */
#define USART2_GPIO_PORT GPIOA
#define USART2_TX_PIN GPIO_Pin_2
#define USART2_RX_PIN GPIO_Pin_3
/* 定义串口二的 USART 外设号 */
#define USART2_APBPERIPH RCC_APB1Periph_USART2
/* 定义串口二的波特率 */
#define USART2_BAUDRATE 9600
/* 串口二初始化函数 */
void USART2_Config(void)
{
USART_InitTypeDef USART_InitStructure;
GPIO_InitTypeDef GPIO_InitStructure;
/* 使能 USART2 外设时钟 */
RCC_APB1PeriphClockCmd(USART2_APBPERIPH, ENABLE);
/* 配置 USART2 Tx 引脚为推挽复用模式 */
GPIO_InitStructure.GPIO_Pin = USART2_TX_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(USART2_GPIO_PORT, &GPIO_InitStructure);
/* 配置 USART2 Rx 引脚为浮空输入模式 */
GPIO_InitStructure.GPIO_Pin = USART2_RX_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(USART2_GPIO_PORT, &GPIO_InitStructure);
/* 配置 USART2 */
USART_InitStructure.USART_BaudRate = USART2_BAUDRATE;
USART_InitStructure.USART_WordLength = USART_WordLength_8b;
USART_InitStructure.USART_StopBits = USART_StopBits_1;
USART_InitStructure.USART_Parity = USART_Parity_No;
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
USART_Init(USART2, &USART_InitStructure);
/* 使能 USART2 */
USART_Cmd(USART2, ENABLE);
}
```
阅读全文