登录/注册

stm32f103单片机的串口1的发送和接收

stm32f103单片机的串口1的发送和接收

更多

在STM32F103单片机中配置和使用USART1进行串口通信的步骤如下:

一、硬件配置


二、初始化步骤

  1. 开启时钟

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_USART1, ENABLE);
  2. 配置GPIO

    • TX(PA9):复用推挽输出
    • RX(PA10):浮空输入(若外部无上拉,可改为上拉输入)
      GPIO_InitTypeDef GPIO_InitStruct;
      // 配置TX
      GPIO_InitStruct.GPIO_Pin = GPIO_Pin_9;
      GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF_PP;
      GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
      GPIO_Init(GPIOA, &GPIO_InitStruct);
      // 配置RX
      GPIO_InitStruct.GPIO_Pin = GPIO_Pin_10;
      GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN_FLOATING;
      GPIO_Init(GPIOA, &GPIO_InitStruct);
  3. 配置USART1参数

    USART_InitTypeDef USART_InitStruct;
    USART_InitStruct.USART_BaudRate = 115200;      // 波特率
    USART_InitStruct.USART_WordLength = USART_WordLength_8b; // 8位数据
    USART_InitStruct.USART_StopBits = USART_StopBits_1;     // 1位停止位
    USART_InitStruct.USART_Parity = USART_Parity_No;        // 无校验
    USART_InitStruct.USART_HardwareFlowControl = USART_HardwareFlowControl_None; // 无流控
    USART_InitStruct.USART_Mode = USART_Mode_Tx | USART_Mode_Rx; // 启用收发
    USART_Init(USART1, &USART_InitStruct);
  4. 使能USART1

    USART_Cmd(USART1, ENABLE);

三、数据收发

1. 轮询方式

2. 中断方式


四、注意事项

  1. 波特率计算:确保BRR寄存器正确设置。例如,72MHz时钟下115200波特率的BRR值为0x271
  2. 中断优化:建议在中断中使用缓冲区管理数据,避免阻塞。
  3. 错误处理:可检测USART_FLAG_ORE(溢出错误)等标志提升鲁棒性。
  4. 库函数兼容:若使用HAL库,需调整初始化流程(如HAL_UART_Init())。

五、测试验证

通过以上步骤,即可实现STM32F103的USART1串口通信。

单片机串口通信的接收发送

的原理。串口通信是通过发送和接收两根线来实现的,分别为发送线(Tx)和

2023-12-20 14:03:46

基于STM32F103单片机设计

情况,基于STM32F103单片机设计一个数字电压表仿真设计。该设计应满足的功能要求为: 1、以

2023-09-10 09:53:04

STM32F103单片机时钟树结构图及时钟配置

STM32属于Cortex-M3内核的单片机,时钟结构比之前的51单片机较复杂的多,根据数据手册,

2023-01-19 16:36:00

嵌入式单片机基础篇(二十五)之stm32F103串口接收发送固定大小字符串程序

stm32F103串口接收发送固定大小字符串程序#include "stm32f

资料下载 王兰 2021-12-27 19:26:59

stm32f103系列单片机串口初始化

stm32f103系列单片机串口初始化 这篇文章是本人从小白到熟悉这个单片机

资料下载 20762 2021-11-19 11:06:03

STM32F103单片机modbus通信示例

,数据的开始和结束是由空闲字符间隔时间来区分的,而STM32F103单片机自带串口空闲模式检测。 在通常情况下Modbus通信一帧数据的检

资料下载 维生素B2 2021-11-18 20:21:03

stm32单片机例程下载链接

使用TM1637芯片驱动4位数码管stm32f103c8t6+ESP8266 模块设置为Station模式向电脑发送数据stm32f103c8t

资料下载 佚名 2021-11-18 20:21:01

基于STM32f103单片机的智能家居步进电机

基于STM32f103单片机的智能家居步进电机

资料下载 jf_42320578 2021-05-20 14:30:38

基于STM32F103单片机的矩阵按键设计

本实验使用STM32F103单片机,主题代码通用的。

2022-12-09 17:18:46

stm32f103单片机与嵌入式系统的区别在哪

录[笔记]|[stm32]|[寄存器存储器区别]|[PWM]|[串口]|[Timer]stm32f103笔记

2022-02-10 07:45:45

如何去配置STM32F103单片机串口

STM32F103系列单片机共有几个串口呢?如何去配置STM32F103

2021-12-06 06:48:24

STM32F103单片机串口通信带奇偶校验位的代码分享

STM32F103单片机串口通信带奇偶校验位的代码分享

2021-12-03 06:43:33

使用STM32F103单片机进行串口接收处理不定长数据测试

最近在使用STM32F103单片机进行串口接收处理不定长数据测试时有两个

2021-08-13 06:47:25

STM32F103单片机串口空闲中断

的开始和结束是由空闲字符间隔时间来区分的,而STM32F103单片机自带串口空闲模式检测。 在通常情况下Modbus通信一帧数据的检测可以用时间

2021-08-12 07:14:50

分享STM32F103单片机学习心得

STM32F103单片机新手学习经验分享-DMA在学习用DMA从Memory往串口发送

2021-08-03 06:18:45
7天热门专题 换一换
相关标签