stm32(HAL库)使用printf函数打印到串口

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

目录

1、简介

2.1 基础配置

2.1.1 SYS配置

 2.1.2 RCC配置

2.2 串口外设配置

 2.3 项目生成

 3、KEIL端程序整合

  4、效果测试

1、简介

在HAL库中,常用的printf函数是无法使用的。本文通过重映射实现在HAL库中进行printf函数。

2.1 基础配置

2.1.1 SYS配置

stm32(HAL库)使用printf函数打印到串口,嵌入式小项目,stm32,单片机,嵌入式硬件

 2.1.2 RCC配置

stm32(HAL库)使用printf函数打印到串口,嵌入式小项目,stm32,单片机,嵌入式硬件

2.2 串口外设配置

stm32(HAL库)使用printf函数打印到串口,嵌入式小项目,stm32,单片机,嵌入式硬件

 2.3 项目生成

stm32(HAL库)使用printf函数打印到串口,嵌入式小项目,stm32,单片机,嵌入式硬件

stm32(HAL库)使用printf函数打印到串口,嵌入式小项目,stm32,单片机,嵌入式硬件

 3、KEIL端程序整合

在usart.c函数最下方复制如下代码

stm32(HAL库)使用printf函数打印到串口,嵌入式小项目,stm32,单片机,嵌入式硬件

#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;
}

接着在usart.h、main.h中分别调用如下头文件。

#include "stdio.h"

stm32(HAL库)使用printf函数打印到串口,嵌入式小项目,stm32,单片机,嵌入式硬件

stm32(HAL库)使用printf函数打印到串口,嵌入式小项目,stm32,单片机,嵌入式硬件

最后设置如下

stm32(HAL库)使用printf函数打印到串口,嵌入式小项目,stm32,单片机,嵌入式硬件

  4、效果测试

在主函数中进行打印测试,代码如下

stm32(HAL库)使用printf函数打印到串口,嵌入式小项目,stm32,单片机,嵌入式硬件

printf("s");

串口调试助手显示如下图所示:

stm32(HAL库)使用printf函数打印到串口,嵌入式小项目,stm32,单片机,嵌入式硬件

 

上文如有错误,恳请各位大佬指正。文章来源地址https://www.toymoban.com/news/detail-634359.html

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

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

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

相关文章

  • 嵌入式_GD32使用宏开关进行Debug串口打印调试

    串口Debug是一种将数据通过串口发送的方法。通过使用printf函数,我们可以将需要发送的数据格式化为字符串,并通过串口发送出去。在C语言中,通常使用串口发送数据的函数为printf函数,但是需要将标准输出重定向到串口。 本文详细的介绍了如何重定向printf输出到串口输出

    2024年02月14日
    浏览(48)
  • STM32-HAL-串口的printf重定向

    一、C语言的格式化输出 C语言的printf是一个标准库函数,用于将格式化的数据输出到标准的输出设备(通常是终端) 基本语法: 其中的第一个参数 const char *format 表示输出格式,后面的参数是可变参数,用于填充格式化字符串中的占位符。 字符输出原理: 格式化字符串处理

    2024年02月11日
    浏览(49)
  • STM32 HAL库串口重映射printf

    添加代码 keil设置 microlib 是缺省 C 库的备选库。 它旨在与需要装入到极少量内存中的深层嵌入式应用程序配合使用。 这些应用程序不在操作系统中运行。 microlib 进行了 高度优化以使代码变得很小 。 它的功能比缺省 C 库少,并且根本不具备某些 ISO C 特性。 某些库函数的运

    2024年02月16日
    浏览(38)
  • STM32系列(HAL库) ——使用串口打印的3种方式

    1、硬件: STM32C8T6最小系统板 USB-TTL串口模块 ST-Link下载器 2、软件: keil5-IDE cubeMX 1、配置RCC——选择外部时钟源 2、配置SYS—— Serial Wire模式   3、时钟树拉满72M          ......  4、配置串口1      5.创建工程         ...... 1.方式一:使用微库(Use MicroLIB) ①:需要在 u

    2024年01月25日
    浏览(40)
  • stm32---在keil 5中使用printf函数输出到串口USART(printf函数的移植方法)以及补充窗口printf函数输出汉字

    在串口函数初始化的c文件中加上#include stdio.h 重写fputc函数 (fputc是printf函数的底层,printf就是不断调用fputc函数一个个打印,把fputc函数重定向到串口,这样子printf自然就输出到串口) 在主函数main.c编写如下代码后直接运行. 引入#include stdarg.h  对sprintf进行可变参数的函数封装 在主

    2024年02月05日
    浏览(44)
  • 【13】STM32·HAL库-正点原子SYSTEM文件夹 | SysTick工作原理、寄存器介绍 | printf函数使用、重定向

      下面函数都是以sys_开头,定义在sys.c中。正点原子函数现阶段命名规则如果是在led.c中,则以led_开头。在F7/H7系列中会存在Cache配置函数,I-Cache中存储指令,D-Cache中存储数据。   SysTick,即系统滴答定时器,包含在M3/4/7内核里面,核心是一个24位的递减计数器( 最大计

    2024年02月15日
    浏览(42)
  • 蓝桥杯嵌入式基础模块——LCD显示器的基本使用(新板)STM32G431(HAL库开发)

            在蓝桥杯嵌入式官方给我们提供好了,LCD显示的底层源码,我们只需要,记住里面的API函数,会用这些函数就行。         在官方给的资料中找到这个文件名字DK117_G4 Data Packet-开发板驱动文件里面就是所有的底层文件有两种类型,一种是基于HAL库的一种是标准库

    2024年02月09日
    浏览(59)
  • STM32-HAL库-printf函数重定向(简单易懂亲测有效)

    由于STM32cubemx生成的HAL库代码没有printf,为了让这个函数能实现打印功能,我们必须要把这个函数重定向,让它重定向到串口中,把要输出的内容打印到串口中。 配置好时钟后,选择你的串口,生成代码。 进入到STM32xxxhal.c中,加入如下两条语句,你的huart是数字几,后面就修

    2024年02月05日
    浏览(43)
  • STM32串口通信详解(嵌入式学习)

    时钟信号在电子领域中是指用于同步和定时电路操作的周期性信号。它在数字系统和通信系统中起着至关重要的作用,用于协调各个组件之间的数据传输和操作。 时钟信号有以下几个重要的方面: 频率:时钟信号的频率是指单位时间内信号周期的数量。它通常以赫兹(Hz)为

    2024年02月09日
    浏览(67)
  • 【嵌入式】openmv与stm32的串口通信

    参考:(文中部分图/文字/代码来自以下文章,部分内容由于时间久远已经找不到原作者,可联系注明或删除) PYTHON串口数据打包发送STM32接收数据解析 openmv中文文档 这里以openmv循迹代码为例 main.py 关于struct.pack: 函数原型:struct.pack(fmt, v1, v2, …) fmt是格式字符串 v1,v2是要转

    2024年02月14日
    浏览(40)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包