stm32f103c8t6串口2初始化和发送整型数
时间: 2023-08-03 18:06:18 浏览: 103
stm32串口发送
5星 · 资源好评率100%
好的,接下来我将为您介绍STM32F103C8T6串口2的初始化方法和如何发送整型数。
首先,进行串口2的初始化,步骤如下:
1. 开启串口2时钟:使能GPIOA时钟和USART2时钟
```
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO | RCC_APB2Periph_USART1, ENABLE);
```
2. 配置GPIO引脚
```
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; //USART2_TX
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3; //USART2_RX
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
```
3. 配置USART2
```
USART_InitStructure.USART_BaudRate = 115200; //波特率
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);
```
4. 使能USART2
```
USART_Cmd(USART2, ENABLE);
```
接下来,我们来看如何发送整型数:
```
#include <stdio.h>
#include <string.h>
void USART2_SendInt(int num)
{
char str[16];
sprintf(str, "%d\r\n", num); //将整数转换为字符串
USART2_SendString(str); //调用发送字符串函数
}
void USART2_SendString(char *str)
{
while (*str) {
USART_SendData(USART2, (uint8_t)*str++);
while (USART_GetFlagStatus(USART2, USART_FLAG_TXE) == RESET);
}
}
```
以上代码中,我们定义了一个函数`USART2_SendInt`,用于发送整型数。该函数将整数转换为字符串,然后调用发送字符串函数`USART2_SendString`发送数据。发送字符串函数的实现与之前介绍的USART2_SendChar函数相似,不再赘述。
使用方法如下:
```
USART2_SendInt(1234); //发送整型数1234
```
希望这些代码能够帮助您完成STM32F103C8T6串口2的初始化和发送整型数的操作。
阅读全文