在f429中
USART1串口1 tx/rx PA9 PA10 串口1、6 APB2时钟
USART2串口2 PA2 PA3 串口2、3、4、5、7 APB1时钟
什么叫管脚复用
STM32F4有很多的内置外设,这些外设的外部引脚都是与GPIO复用的。也就是说,一个GPIO如果可以复用为内置外设的功能引脚,那么当这个GPIO作为内置外设使用的时候,就叫做复用。
以USART2为例TX,RX分别对应PD5,PD6
1.时钟使能
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD|RCC_AHB1Periph_GPIOD,ENABLE);
USARTx_CLOCKCMD(RCC_APB2Periph_USART1, ENABLE);使能USART时钟
2.GPIO初始化
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
配置TX复用功能
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 ;
GPIO_Init(GPIOD, &GPIO_InitStructure);
配置RX复用功能
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;
GPIO_Init(GPIOD, &GPIO_InitStructure);
连接TX、RX到USART
GPIO_PinAFConfig(GPIOD,GPIO_PinSource5,USARTx_RX_AF);
GPIO_PinAFConfig(GPIOD,GPIO_PinSource6,USARTx_TX_AF);
3.USART配置
USART_InitStructure.USART_BaudRate = 115200; 波特率配置
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控制模式同时使用接收和发送
USART_Init(USARTx, &USART_InitStructure); 写入
USART_Cmd(USARTx, ENABLE); 使能串口
}
具体程序如下A9,A10引脚