//网上找了老半天也找不到UART4-DMA的程序,自己调试成功了,特地分享一下
</pre><pre name="code" class="cpp"><pre name="code" class="cpp">uint8_t UART4_Rx_buffer[512],UART4_Rx_num;
void UART4_Config(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
USART_InitTypeDef USART_InitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
DMA_InitTypeDef DMA_InitStructure; //定义DMA初始化结构体DMA_InitStructure
// NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0); //选择NVIC优先级分组0
RCC_APB1PeriphClockCmd(RCC_APB1Periph_UART4, ENABLE);
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA2, ENABLE);
//串口4所使用管脚输出输入定义
//定义UART4 Tx (PC.10)脚为复用推挽输出
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; //IO口的第2脚
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO口速度
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //IO口复用推挽输出
GPIO_Init(GPIOC, &GPIO_InitStructure); //初始化串口1输出IO口
//定义 UART4 Rx (PC.11)为悬空输入
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11; //IO口的第3脚
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//IO口悬空输入
GPIO_Init(GPIOC, &GPIO_InitStructure); //初始化串口1输入IO口
//串口4参数初始化定义部分,串口1参数为9600 , 8 ,1 ,N 接收中断方式
USART_InitStructure.USART_Baud