STM32配置GPIO--串口的配置(库函数版本)

本文章以STM32F407ZGTx为例:
1、首先我们需要知道能够作为串口使用的GPIO有哪些:在这里插入图片描述这里以串口一为例:PA9作为TX,PA10作为RX。
2、对串口的配置:
(1)、首先我们要知道串口的配置过程:
GPIO的初始化,串口的初始化,NVIC的初始化。故首先我们要先创建这些初始化必要的结构体:在这里插入图片描述

(2)、开启时钟
在这里插入图片描述

(3)、对GPIO进行配置

在这里插入图片描述

GPIO的配置主要是对GPIO的初始化,这里使用的是stm32f4xx_gpio.c文件里的GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct)函数对GPIO初始化,初始化的内容主要是对GPIO_InitStruct里面的元素进行赋值,然后传递给该函数。
(4)、对串口1进行配置

在这里插入图片描述

串口的配置主要是对串口的初始化,这里使用的是stm32f4xx_usart.c文件里的USART_Init(USART_TypeDef* USARTx, USART_InitTypeDef* USART_InitStruct)函数对串口初始化,初始化的内容主要是对USART_InitStruct里面的元素进行赋值,然后传递给该函数。
(5)、对NVIC(总中断)进行配置

在这里插入图片描述

NVIC的配置主要是对NVIC的初始化,这里使用的是misc.c文件里的NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct)函数对NVIC初始化,初始化的内容主要是对NVIC_InitStruct里面的元素进行赋值,然后传递给该函数。
(6)、编写串口中断函数

在这里插入图片描述

我们可以通过获取串口一的中断标志位来判断是否为串口一产生的中断,获取中断标志位的函数在stm32f4xx_usart.c文件中USART_GetFlagStatus(USART_TypeDef* USARTx, uint16_t USART_FLAG)或USART_GetITStatus(USART_TypeDef* USARTx, uint16_t USART_IT)。(我这里写的只是将发过来的数据再发回去的代码)
(7)、重写fputc函数,将printf通过串口打印出来

在这里插入图片描述

这样我们就可以通过使用printf函数来打印串口数据啦。

在这里插入图片描述

在这里插入图片描述