嵌入式蓝桥杯 配置串口 调用固件库的方法
因为比赛时间要求的比较紧 所以调用固件库可以很快的节省时间
这里调用固件库配置串口发送分两次
一次是配置串口初始化
一次是使用printf打印的字符
串口初始化化路径
\STM32固件库v3.5\STM32F10x_StdPeriph_Lib_V3.5.0\Utilities\STM32_EVAL\STM3210B_EVAL
打开stm3210b_eval.c文件找到这个函数
void STM_EVAL_COMInit(COM_TypeDef COM, USART_InitTypeDef* USART_InitStruct)
有一说一 这个函数复制上去
从配置过程上并没有节省多少时间
但是减少了思考的时间
也就是说 思维清晰的话直接写感觉还比较好一点
我们看看这个函数
如果我们要使用PA2PA3作为串口
我们只需要开启串口2时钟 和GPIOA的时钟就可以了
不用开启端口重映射 这些通通删去
原来的时钟代码
/* Enable GPIO clock */
RCC_APB2PeriphClockCmd(COM_TX_PORT_CLK[COM] | COM_RX_PORT_CLK[COM] | RCC_APB2Periph_AFIO, ENABLE);
if (COM == COM1)
{
RCC_APB2PeriphClockCmd(COM_USART_CLK[COM], ENABLE);
}
else
{
/* Enable the USART2 Pins Software Remapping */
GPIO_PinRemapConfig(GPIO_Remap_USART2, ENABLE);
RCC_APB1PeriphClockCmd(COM_USART_CLK[COM], ENABLE);
}
改成
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO, ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2 , ENABLE);
接着我们看GPIO
PA2是写 PA3是读 直接改Pin就好了
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
/* Configure USART Rx as input floating */
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;
GPIO_Init(GPIOA, &GPIO_InitStructure);
/* USART configuration */
USART_Init(COM_USART[COM], USART_InitStruct);
/* Enable USART */
USART_Cmd(COM_USART[COM], ENABLE);
接下来是一个初始化 一个通道
这个我们改成USART2 就好了
接下来我们打开初始化的那个文件
路径如下
STM32固件库v3.5\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Examples\USART\Printf
找到main.c
开头就是一段初始化配置串口的配置
然后我们复制她 同时对我们第一个复制函数做一些更改
就是一个函数包含另一个函数
代码贴出来 自己看吧
#include "uart.h"
void STM_EVAL_COMInit(USART_InitTypeDef* USART_InitStruct)
{
GPIO_InitTypeDef GPIO_InitStructure;
/* Enable GPIO clock */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO, ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2 , ENABLE

本文详细介绍了如何使用STM32固件库快速配置串口,包括串口初始化、GPIO设置、中断配置以及printf函数的定制,以适应嵌入式蓝桥杯比赛的需求。通过实例代码解析了STM32F10x的USART配置步骤,减少了手动配置的时间,简化了流程,特别适合时间紧迫的情况。
最低0.47元/天 解锁文章
717





