usart2.c
#include "usart2.h"
#define G_DMA_RX2_LEN 100
#define G_DMA_TX2_LEN 100
uint8_t g_dma_rx2_buff[G_DMA_RX2_LEN];
uint8_t g_dma_tx2_buff[G_DMA_TX2_LEN];
uint16_t g_tx2_buff_len = 0;
static void Usart2GpioInit(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_AHB1PeriphClockCmd(USART2_GPIO_CLK,ENABLE); //使能GPIOA时钟
GPIO_InitStructure.GPIO_Pin = USART2_GPIO_PIN; //GPIOD5与GPIOD6
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; //复用功能
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //速度50MHz
GPIO_Init(USART2_GPIO_PORT,&GPIO_InitStructure); //初始化PD5/PD6
//串口2对应引脚复用映射
GPIO_PinAFConfig(USART2_GPIO_PORT,USART2_TX_SOURCE,USART2_TX_AF); //GPIOD5复用为USART2
GPIO_PinAFConfig(USART2_GPIO_PORT,USART2_RX_SOURCE,USART2_RX_AF); //GPIOD6复用为USART2
}
static void Usart2Config(void)
{
USART_InitTypeDef USART_InitStructure;
RCC_APB1PeriphClockCmd(USART2_CLK,ENABLE); //使能USART2时钟
//USART2 初始化设置
USART_InitStructure.USART_BaudRate = USART2_BAUDRATE; //波特率设置
USART_InitStructure.USART_WordLength = USART_WordLength_8b; //字长为8位数据格式
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); //初始化串口2
}
static void Usart2