stm32f103c8t6的USART3串口初始化代码
时间: 2023-08-01 18:07:07 浏览: 62
以下是基于HAL库的stm32f103c8t6的USART3串口初始化代码:
```
/* 定义USART3句柄 */
UART_HandleTypeDef huart3;
/* 初始化USART3 */
void MX_USART3_UART_Init(void)
{
huart3.Instance = USART3;
huart3.Init.BaudRate = 115200;
huart3.Init.WordLength = UART_WORDLENGTH_8B;
huart3.Init.StopBits = UART_STOPBITS_1;
huart3.Init.Parity = UART_PARITY_NONE;
huart3.Init.Mode = UART_MODE_TX_RX;
huart3.Init.HwFlowCtl = UART_HWCONTROL_NONE;
huart3.Init.OverSampling = UART_OVERSAMPLING_16;
if (HAL_UART_Init(&huart3) != HAL_OK)
{
Error_Handler();
}
}
```
在主函数中调用该函数即可完成USART3的初始化。
相关问题
用标准库写stm32f103c8t6的USART3串口初始化代码
以下是基于标准库的stm32f103c8t6的USART3串口初始化代码:
```
// 定义USART3的GPIO引脚
#define USART3_TX GPIO_Pin_10
#define USART3_RX GPIO_Pin_11
// 初始化USART3
void USART3_Init(uint32_t baudrate)
{
GPIO_InitTypeDef GPIO_InitStructure;
USART_InitTypeDef USART_InitStructure;
// 使能USART3和GPIOB时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO | RCC_APB2Periph_USART3, ENABLE);
// 配置USART3_TX引脚为推挽输出
GPIO_InitStructure.GPIO_Pin = USART3_TX;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
// 配置USART3_RX引脚为浮空输入
GPIO_InitStructure.GPIO_Pin = USART3_RX;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
// 配置USART3
USART_InitStructure.USART_BaudRate = 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(USART3, &USART_InitStructure);
// 使能USART3
USART_Cmd(USART3, ENABLE);
}
```
在主函数中调用USART3_Init函数即可完成USART3的初始化。需要注意的是,使用标准库需要在工程中添加对应的库文件,并在代码中包含相应的头文件。
初始化stm32f103c8t6的usart3串口的代码
以下是初始化USART3串口的代码示例:
```
// 使能USART3时钟
RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3, ENABLE);
// 配置USART3引脚
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; // USART3_TX
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11; // USART3_RX
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOB, &GPIO_InitStructure);
// 配置USART3
USART_InitTypeDef USART_InitStructure;
USART_InitStructure.USART_BaudRate = 9600; // 波特率
USART_InitStructure.USART_WordLength = USART_WordLength_8b; // 字长为8位数据格式
USART_InitStructure.USART_StopBits = USART_StopBits_1; // 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(USART3, &USART_InitStructure);
// 使能USART3
USART_Cmd(USART3, ENABLE);
```
需要注意的是,这里使用的是USART3,如果你要使用其他的USART,需要相应的修改代码中的引脚和USART号。