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

2023-08-05 21:52:14

概述

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

样品申请

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

硬件准备

在开始进行开发之前,首先需要准备一块合适的开发板,所选用的是搭载了STM32H503RB芯片的开发板,,具备了丰富多样的外设和功能,非常适合各类应用领域的开发需求。
在这里插入图片描述

生成例程

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

在这里插入图片描述

在"Configuration"(配置)选项卡下,找到USART1的配置部分。选择"Async Mode"(异步模式)以启用异步串口通信。
在这里插入图片描述

通过确保将PB14设置为Tx引脚,将PB15设置为Rx引脚,将能够正确地配置USART1的引脚,实现正确的串口通信连接。这将为开发提供了一个稳定的通信通道,使能够在开发板上实现数据的双向传输。记得在代码中使用正确的引脚名称,以确保与配置一致。
在这里插入图片描述

通过将USART1的波特率设置为115200,将确保与其他设备进行稳定和高效的串口通信。这个设置将影响数据传输速率,确保您的数据能够及时、准确地在通信通道中传递。在编写代码时,确保使用正确的波特率设置,以便在通信的两端保持一致。
在这里插入图片描述
本实验的STM32H503以250 MHz运行。
在这里插入图片描述

配置调试口

在这里插入图片描述

代码生成配置

在这里插入图片描述

项目配置

在这里插入图片描述

调试配置

点击小虫子按钮进入调试器配置
在这里插入图片描述

或者点击工程。
在这里插入图片描述

配置调试器,这里使用jlink进行调试。
在这里插入图片描述

串口重定向

在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 */

结果

在这里插入图片描述

更多推荐

python机器人编程——用python实现一个写字机器人

目录一、前言二、整体框架2.1系统构成2.2硬件介绍2.2.1主要组成部分2.2.2机械结构2.2.3驱动及控制主板PS电机驱动原理简介:2.2.4其余部分2.3机器人python程序框架2.3.1通信服务模块2.3.2消息处理模块2.3.3轨迹解析模块2.3.4机械臂逆解模块2.3.5写字板模块三、机械臂的建模3.1

问道管理:机器人产业迎催化 黄金价格或将突破前高

昨日,沪指盘中震动下探,一度跌近1%逼近3100点,尾盘逐步止跌;深成指、创业板指均跌超1%。截至收盘,沪指跌0.45%报3123.07点,深成指跌1.14%报10255.87点,创业板指跌1.14%报2027.73点,科创50指数跌1.39%;两市合计成交6982亿元,北向资金净卖出近66亿元。行业方面,软件、轿车、

如何利用Java实现 AI 人脸融合特效

Java实现AI人脸融合特效项目背景AI人脸融合特效的原理代码实现第一步:调用token接口人脸融合部分工具类最终效果图项目背景最近自从chat-gpt爆火以来,AI技术在人工智能领域持续迭代的创新,为人们的生活带来了许多震撼的应用。比如其中的,AI人脸融合特效,在各大抖音、B站等平台上,越来越火热,基于这,我也打算利

使用 Next.js、Langchain 和 OpenAI 构建 AI 聊天机器人

在当今时代,将AI体验集成到您的Web应用程序中变得越来越重要。LangChain与Next.js的强大功能相结合,提供了一种无缝的方式来将AI驱动的功能引入您的应用程序。在本指南中,我们将学习如何使用Next.js,LangChain,OpenAILLM和VercelAISDK构建AI聊天机器人。文章目录Langch

细说 Spring Cloud Gateway

1.SpringCloudGateway简介与核心概念在微服务架构中,API网关是一个非常重要的组件,它可以帮助我们实现服务的路由、负载均衡、认证授权等功能。SpringCloudGateway是SpringCloud官方推出的一个基于Spring5、SpringBoot2和ProjectReactor的API网关实现

Linux centOS yum install MySQL5.7

下载并安装MySQLYUM仓库wgethttps://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpmsudoyumlocalinstallmysql57-community-release-el7-11.noarch.rpm这将为您的CentO

PKE 安全性的提升方式:Naor-Yung、Fischlin、Fujisaki-Okamoto

参考文献;[NY90]NaorM,YungM.Public-keycryptosystemsprovablysecureagainstchosenciphertextattacks[C]//Proceedingsofthetwenty-secondannualACMsymposiumonTheoryofcomputin

深入解析Perlin Simplex噪声函数:在C++中构建现代、高效、免费的3D图形背景

引言在计算机图形中,噪声是一个经常被讨论的话题。无论是为了制造自然的纹理,还是为了模拟复杂的现实世界现象,噪声函数都在其中起着关键作用。而在众多噪声函数中,PerlinSimplex噪声无疑是最受欢迎的一种。其原因不仅在于其干净、快速的特性,更因为其所提供的连续性和一致性非常适合图形渲染。本文将为你展示如何在C++中实

8路光栅尺磁栅尺编码器或16路高速DI脉冲信号转Modbus TCP网络模块 YL99-RJ45

特点:●光栅尺磁栅尺解码转换成标准ModbusTCP协议●高速光栅尺磁栅尺4倍频计数,频率可达5MHz●模块可以输出5V的电源给光栅尺或传感器供电●支持8个光栅尺同时计数,可识别正反转●可以设置作为16路独立DI高速计数器●可网页直接查看所有数据无需其他软件●编码器计数值和DI计数都支持断电自动保存●DI输入和网络通信

每天几道Java面试题:集合(第四天)

目录第四幕、第一场)大厦楼下门口第二场)大门口友情提醒背面试题很枯燥,加入一些戏剧场景故事人物来加深记忆。PS:点击文章目录可直接跳转到文章指定位置。第四幕、第一场)大厦楼下门口【面试者老王,门卫甲,门卫乙,面试者奥斯卡】门卫甲:天下熙熙皆为利来,天下攘攘皆为利往,像门卫乙和我这样不为名利专心看门,世界上又有多少人呢?

蓝牙资讯|苹果新款AirPods Pro支持Vision Pro无损音频和IP54防水防尘

苹果公司宣称,USB-C能够带来更多灵活性,现在用户可以使用手机的USB-C接口,为AirPodsPro耳机盒充电。虽然苹果没有详细介绍这款耳机,但在今天的新闻稿中依然透露了一些不一样的地方,例如新款AirPodsPro2升级到了IP54级别(原版不防尘,仅IPX4级抗水),可陪伴用户在恶劣的环境中展开冒险。除此之外,

热文推荐