STM32 HAL库UART串口数据接收实验

news/2025/2/22 10:08:14/

1. 实验目标

  • 掌握STM32 HAL库的UART配置方法

  • 实现通过UART接收数据并处理

  • 使用中断方式接收数据

  • 用串口调试工具发送数据1或0,输入为1时板载LED亮,输入为0板载LED熄灭。


2. 硬件准备

  • STM32开发板(STM32F103C8T6)

  • USB转TTL模块

  • 杜邦线若干

  • PC端串口调试助手


3. 软件准备

  • STM32CubeMX

  • Keil MDK

  • 串口调试工具


4.硬件连接

  • 硬件连接图形

  • 板载LED接线图


5.实验步骤

  • 新建项目

    选择对应型号的STM32芯片。

  • 配置UART

    • 选择USART1(或其他可用串口)

    • 模式选择 Asynchronous

    • 参数配置

  • 设置GPIO

  1. 生成代码
    选择IDE类型(Keil)并生成代码。


6.代码编写

在生成的代码基础上添加以下内容:

while (1){uint8_t data;HAL_UART_Receive(&huart1,&data,1,HAL_MAX_DELAY);if(data == '0'){HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,GPIO_PIN_SET);}else{HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,GPIO_PIN_RESET);}/* USER CODE END WHILE *//* USER CODE BEGIN 3 */}

编译上传程序


7.实验验证

  1. 使用杜邦线连接开发板与USB转TTL模块:

    • STM32 UART1_TX → USB-TTL RX

    • STM32 UART1_RX → USB-TTL TX

    • GND 共地

  2. 打开串口调试助手:

    • 选择正确COM口

    • 波特率 115200

    • 发送数据1

  1. 观察现象:

    • 发送一个字符1,板载LED灯点亮

    • 发送一个字符0,板载LED灯熄灭


http://www.ppmy.cn/news/1574126.html

相关文章

【目标检测】【YOLOv4】YOLOv4:目标检测的最佳速度与精度

YOLOv4:目标检测的最佳速度与精度 0.论文摘要 有许多特征被认为可以提高卷积神经网络(CNN)的准确性。需要在大规模数据集上对这些特征的组合进行实际测试,并对结果进行理论上的验证。某些特征仅适用于特定模型和特定问题&#…

基于YOLO11深度学习的糖尿病视网膜病变检测与诊断系统【python源码+Pyqt5界面+数据集+训练代码】

《------往期经典推荐------》 一、AI应用软件开发实战专栏【链接】 项目名称项目名称1.【人脸识别与管理系统开发】2.【车牌识别与自动收费管理系统开发】3.【手势识别系统开发】4.【人脸面部活体检测系统开发】5.【图片风格快速迁移软件开发】6.【人脸表表情识别系统】7.【…

day56 第十一章:图论part06

108.冗余连接 注意init初始化 改进&#xff1a; 其实只有一条边冗余&#xff0c;改为&#xff0c;如果两条边在同一个集合里&#xff0c;就输出&#xff0c;不然加入。 #include <iostream> #include <vector> using namespace std;int n 1005; vector<int>…

共筑金融数字化新生态!YashanDB与恒生电子完成兼容互认证

近日&#xff0c;深圳计算科学研究院的崖山数据库系统YashanDB与恒生电子股份有限公司HUNDSUN资产估值与会计核算软件V6.0成功完成了兼容性互认证。结果显示&#xff0c;双方产品完全兼容&#xff0c;稳定运行&#xff0c;可共同为银行、证券、基金、保险、信托等金融机构提供稳…

stm32高级TIM的常用功能

介绍 STM32 高级定时器的刹车死区、互补输出、输入捕获 的基本资料。 1. 刹车死区&#xff08;Brake Dead Time&#xff09; 高级定时器&#xff08;如 TIM1、TIM8&#xff09;支持 刹车死区&#xff08;Brake Dead Time&#xff09; 功能&#xff0c;通常用于电机控制和其他…

Spring全面讲解(无比详细)

1、Spring框架体系 2、 IOC 2.1 什么是IOC 2.3 基于 配置文件的di实现 2.3.1 什么是di 2.3.2 入门案例 2.3.3 环境搭建 2.3.4 案例总结 2.3.5 简单类型属性的赋值&#xff08;set注入&#xff09; 2.3.6 非简单类型属性的赋值&#xff08;set注入&#xff09; 2.3.7 构造注入 …

Springboot中分析SQL性能的两种方式

SQL性能分析的两种方式: 功能介绍 记录 SQL 执行时间&#xff0c;超过阈值会进行警告打印完整的 SQL 语句&#xff0c;便于调试和优化适用于开发和测试环境&#xff0c;生产环境建议关闭 实现方式: 方式一:使用 MyBatis-Plus 性能分析插件 首先需要在MyBatis-Plus配置类中配…

在mfc中使用自定义三维向量类和计算多个三维向量的平均值

先添加一个普通类, Vector3.h, // Vector3.h: interface for the Vector3 class. // //#if !defined(AFX_VECTOR3_H__53D34D26_95FF_4377_BD54_57F4271918A4__INCLUDED_) #define AFX_VECTOR3_H__53D34D26_95FF_4377_BD54_57F4271918A4__INCLUDED_#if _MSC_VER > 1000 #p…