STM32H5开发(5)----串口打印配置

这篇具有很好参考价值的文章主要介绍了STM32H5开发(5)----串口打印配置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

概述

在使用STM32CUBEIDE开发STM32H5项目时,串口打印被证明是一项极其有益的调试工具,能够在开发过程中实时输出信息和调试数据,起到了至关重要的作用。通过充分利用串口打印功能,开发者可以轻松地在代码中插入打印语句,通过串口将这些信息传输至连接于PC端的终端软件,从而方便地监测程序的状态以及各变量的实时值。
在项目中,我们可以将标准C库中的"printf"函数输出进行重定向,使其输出通过USART1通信接口进行传输。值得注意的是,USART1接口与CH340芯片相连接,而CH340则通过串口连接于PC端。这种设置允许我们使用串口助手等工具来实时捕获和显示"printf"函数的输出内容,从而更加高效地进行程序的调试和性能优化。
最近在弄ST的课程,需要样片的可以加群申请:615061293 。

样品申请

https://www.wjx.top/vm/PpC1kRR.aspx

硬件准备

在开始进行开发之前,首先需要准备一块合适的开发板,所选用的是搭载了STM32H503RB芯片的开发板,,具备了丰富多样的外设和功能,非常适合各类应用领域的开发需求。
STM32H5开发(5)----串口打印配置,单片机,stm32cube,#STM32,STM32H503,CortexM33,STM32H5,串口,printf,STM32CUBEMX,STM32CUBEIDE,原力计划

生成例程

通过查看原理图,可以了解到PB14与USART1的Tx(发送)功能相连接,而PB15则与USART1的Rx(接收)功能相连接。这样的连接配置使得您可以通过USART1接口进行双向的串口通信。

STM32H5开发(5)----串口打印配置,单片机,stm32cube,#STM32,STM32H503,CortexM33,STM32H5,串口,printf,STM32CUBEMX,STM32CUBEIDE,原力计划

在"Configuration"(配置)选项卡下,找到USART1的配置部分。选择"Async Mode"(异步模式)以启用异步串口通信。
STM32H5开发(5)----串口打印配置,单片机,stm32cube,#STM32,STM32H503,CortexM33,STM32H5,串口,printf,STM32CUBEMX,STM32CUBEIDE,原力计划

通过确保将PB14设置为Tx引脚,将PB15设置为Rx引脚,将能够正确地配置USART1的引脚,实现正确的串口通信连接。这将为开发提供了一个稳定的通信通道,使能够在开发板上实现数据的双向传输。记得在代码中使用正确的引脚名称,以确保与配置一致。
STM32H5开发(5)----串口打印配置,单片机,stm32cube,#STM32,STM32H503,CortexM33,STM32H5,串口,printf,STM32CUBEMX,STM32CUBEIDE,原力计划

通过将USART1的波特率设置为115200,将确保与其他设备进行稳定和高效的串口通信。这个设置将影响数据传输速率,确保您的数据能够及时、准确地在通信通道中传递。在编写代码时,确保使用正确的波特率设置,以便在通信的两端保持一致。
STM32H5开发(5)----串口打印配置,单片机,stm32cube,#STM32,STM32H503,CortexM33,STM32H5,串口,printf,STM32CUBEMX,STM32CUBEIDE,原力计划
本实验的STM32H503以250 MHz运行。
STM32H5开发(5)----串口打印配置,单片机,stm32cube,#STM32,STM32H503,CortexM33,STM32H5,串口,printf,STM32CUBEMX,STM32CUBEIDE,原力计划

配置调试口

STM32H5开发(5)----串口打印配置,单片机,stm32cube,#STM32,STM32H503,CortexM33,STM32H5,串口,printf,STM32CUBEMX,STM32CUBEIDE,原力计划

代码生成配置

STM32H5开发(5)----串口打印配置,单片机,stm32cube,#STM32,STM32H503,CortexM33,STM32H5,串口,printf,STM32CUBEMX,STM32CUBEIDE,原力计划

项目配置

STM32H5开发(5)----串口打印配置,单片机,stm32cube,#STM32,STM32H503,CortexM33,STM32H5,串口,printf,STM32CUBEMX,STM32CUBEIDE,原力计划

调试配置

点击小虫子按钮进入调试器配置
STM32H5开发(5)----串口打印配置,单片机,stm32cube,#STM32,STM32H503,CortexM33,STM32H5,串口,printf,STM32CUBEMX,STM32CUBEIDE,原力计划

或者点击工程。
STM32H5开发(5)----串口打印配置,单片机,stm32cube,#STM32,STM32H503,CortexM33,STM32H5,串口,printf,STM32CUBEMX,STM32CUBEIDE,原力计划

配置调试器,这里使用jlink进行调试。
STM32H5开发(5)----串口打印配置,单片机,stm32cube,#STM32,STM32H503,CortexM33,STM32H5,串口,printf,STM32CUBEMX,STM32CUBEIDE,原力计划

串口重定向

在main.c中,添加头文件,否则可能会出现"identifier ‘FILE’ is undefined"错误。
通过包含<stdio.h>头文件,可以解决"identifier ‘FILE’ is undefined"错误。这是因为该头文件声明了与文件输入/输出相关的标准函数和类型,包括FILE类型,它在标准输入/输出流的处理中非常重要。
请确保在main.c文件中添加该头文件,并在需要使用文件输入/输出或其他标准I/O函数时,以正确的方式使用它们。

/* USER CODE BEGIN Includes */
#include "stdio.h"
/* USER CODE END Includes */

函数声明和串口重定向:

/* USER CODE BEGIN PFP */
#ifdef __GNUC__									//串口重定�???
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif
PUTCHAR_PROTOTYPE
{
    HAL_UART_Transmit(&huart1 , (uint8_t *)&ch, 1, 0xFFFF);
    return ch;
}
/* USER CODE END PFP */

打印测试

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
	  printf("Hello World!\n\r");
	  HAL_Delay(1000);
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */

结果

STM32H5开发(5)----串口打印配置,单片机,stm32cube,#STM32,STM32H503,CortexM33,STM32H5,串口,printf,STM32CUBEMX,STM32CUBEIDE,原力计划文章来源地址https://www.toymoban.com/news/detail-668471.html

到了这里,关于STM32H5开发(5)----串口打印配置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 单片机移植Lua(STM32H743移植Lua-5.4.6)

    通常单片机都是使用C/C++来开发的,任何修改都需要重新编译固件然后下载运行。在一些需要灵活性更强的场合中可以内嵌Lua解释器实现动态更新应用程序的功能。这篇文章将对相关内容做个简单说明。 Lua本身就是纯C实现的,不管是移植到上位机程序还是单片机程序中本质上

    2024年02月21日
    浏览(47)
  • STM32H5开发(3)----电源控制&RCC

    VDDA = 1.62 V ~3.6 V :ADC/DAC的外部供电电源 VDDIO2 = 1.08 V ~ 3.6 V : 9 I/Os (PA8, PA9, PA15, PB3:8)的外部供电电源(仅WLCSP25封装) VDD = 1.71 V ~ 3.6 V: GPIO,内部电压调制器,系统复位模块,电源管理以及内部时钟的外部供电电源 VBAT = 1.2 V ~ 3.6 V :无VDD时通过功率切换开关给RTC/内部32kHz振荡器

    2024年02月15日
    浏览(66)
  • STM32H5开发(7)----LCD显示TOF检测数据

    “自主模式”(Autonomous mode)通常指的是设备或系统能够在没有外部输入的情况下独立完成任务。对于传感器,如VL53L5,自主模式可能意味着传感器可以独立、定期地进行测量,而不需要来自主控制器或主机的每一次单独指令。 最近在弄ST的课程,需要样片的可以加群申请:

    2024年01月17日
    浏览(91)
  • STM32H5开发(6)----SPI驱动TFT-LCD屏

    在嵌入式领域,TFT-LCD屏是最常用的显示解决方案之一,因为它们提供了丰富的颜色和高分辨率的图像显示能力。STM32H5作为ST的高性能微控制器系列,具备了强大的处理能力和多种通信接口,非常适合于驱动TFT-LCD显示屏,该液晶屏st7796或者ILI9488驱动芯片,这两个屏幕都是兼容

    2024年02月05日
    浏览(43)
  • USB VCP虚拟串口通讯详细配置步骤(STM32H732)

    1、单片机型号:STM32H743IIT6;正点原子-阿波罗版 2、Keil-MDK:V5.32 3、CubeMX:6.7.0 4、HAL:STM32Cube FW_H7 V1.11.0 5、参考文章: 1.STM32 USB使用记录:使用CDC类虚拟串口(VCP)进行通讯 2.STM32CubeIDE 简单配置USB虚拟串口 并实现printf 3.STM32Cube配置USB虚拟串口发送与接收回传 4.STM32USB开发备

    2023年04月11日
    浏览(47)
  • 两块stm32单片机串口通信讲解

    本篇文章记录了如何使用stm32f103zet6核心板(下位机)通过串口向stm32f103zet6学习板(上位机)发送数据,stm32f103zet6学习板完成接收,并将接收到的数据显示在LCD显示屏上。 正点原子精英STM32F103ZET6学习板一块(带2.8寸显示屏) STM32F103ZET6核心板一块 电源适配器、数据线以及杜

    2024年02月16日
    浏览(130)
  • STM32单片机(九)USART串口----第一节:USART串口协议

    ❤️ 专栏简介:本专栏记录了从零学习单片机的过程,其中包括51单片机和STM32单片机两部分;建议先学习51单片机,其是STM32等高级单片机的基础;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 :适用于想要从零基础开始学习入门单片机,且有一定C语言基础的的童鞋

    2024年02月16日
    浏览(73)
  • 【单片机】基于STM32的UART串口通信

    简单讲解一下UART通信协议,以及UART能够实现的一些功能,还有有关使用STM32CubeMX来配置芯片的一些操作。实验内容基于 正点原子精英板 开发板,单片机芯片为 STM32F103ZET6 。 在后面我会以我使用的STM32F429开发板来举例讲解(其他STM32系列芯片大多数都可以按照这些步骤来操作

    2024年01月17日
    浏览(79)
  • STM32单片机(九)USART串口----第三节:USART串口实战练习(串口发送)

    ❤️ 专栏简介:本专栏记录了从零学习单片机的过程,其中包括51单片机和STM32单片机两部分;建议先学习51单片机,其是STM32等高级单片机的基础;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 :适用于想要从零基础开始学习入门单片机,且有一定C语言基础的的童鞋

    2024年02月10日
    浏览(59)
  • STM32单片机(九)USART串口----第四节:USART串口实战练习(串口发送+接收)

    ❤️ 专栏简介:本专栏记录了从零学习单片机的过程,其中包括51单片机和STM32单片机两部分;建议先学习51单片机,其是STM32等高级单片机的基础;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 :适用于想要从零基础开始学习入门单片机,且有一定C语言基础的的童鞋

    2024年02月10日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包