STM32F1的USARTx发送与接收

本文详细介绍了STM32F1系列MCU中的USART配置,包括USART1、USART2和USART3的初始化设置,时钟使能步骤,以及串口在发送和接收模式下的操作。通过理解串口的初始化参数如波特率、停止位和奇偶校验位,可以实现有效的串行通信。同时,文中提供了usart.c和usart.h文件中的关键代码示例,指导如何根据需求选择和配置串口。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

STM32F1的USARTx发送与接收

一、概述
  1. USART 含义是通用同步异步收发器,本人用的 STM32F103C8T6 有三个串口,分别是USART1、USART2 和 USART3;
  2. USART1 工作在高速总线 APB2 上,USART2 和 USART3 工作在低速总线 APB1 上;
  3. 串口有两种工作模式,一种是发送数据,另一种是接收数据,无论使用哪一种都需要进行串口初始化;
  4. 串口初始化中包括对串口所在 IO 口的初始化,串口的波特率、停止位、奇偶校验位等初始化。
二、思维导图

具体的工作流程如图所示:

在这里插入图片描述

三、特殊代码说明
  1. usart.c 文件中不同串口的时钟使能
  • USART1 初始化中的时钟使能
// 使能 USART1、GPIOA 时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA, ENABLE);	
  • USART2 初始化中的时钟使能
// 使能 USART2 所在 GPIOA 的时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA , ENABLE); 
// 使能串口的 RCC 时钟
RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE); 
  1. usart.h 文件中定义使用 printf 函数的串口,如果要使用串口 2 ,则将 USART1 改成 USART2 即可
#define USART_n		USART1
  1. usart.h 文件中使能或禁止端口号,不使用某个串口时要禁止此串口,以减少编译量
#define EN_USART1 			1		//使能(1)/禁止(0)串口 1
#define EN_USART2 			0		
#define EN_USART3 			0

愿余生,不负岁月,不负自己。
喜欢就点个赞吧
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值