历史上的今天
返回首页

历史上的今天

今天是:2025年02月12日(星期三)

正在发生

2019年02月12日 | STM32—printf函数重定义

2019-02-12 来源:eefocus

  为了便于调试,我们经常要使用到printf函数,打印出调试的信息。在Keil软件中,要使用printf输出函数的话,注意需要先把use MicrolLIB选项选上,如下图。


这里写图片描述


  接着 ,在main函数的添加头文件下方添加printf函数的声明,代码如下:


/* Includes ------------------------------------------------------------------*/

#include "main.h"

#include "stm32f4xx_hal.h"


 // 添加的代码如下,进行函数重构

#ifdef __GNUC__            //gcc编译器宏定义

  /* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf

 set to 'Yes') calls __io_putchar() */

    #define PUTCHAR_PROTOTYPE int __io_putchar(int ch)

#else

    #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)

#endif /* __GNUC__ */


/*上面的意思是:

如果定义了宏__GNUC__,即使用GCC编译器,则定义宏#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)

如果没有定义宏__GNUC__,即不使用GCC编译器,则定义宏#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)  */


//添加printf重构函数的实现部分

PUTCHAR_PROTOTYPE

{

    HAL_UART_Transmit(&huart1 , (uint8_t *)&ch, 1, 0xFFFF);

    return ch;

}


  在mian函数的while(1)循环中添加打印输出函数,测试效果。


  while (1)

    {

        printf("printf teset\r\n");//打印输出

        HAL_Delay(1000);//延时1S

    }


  测试效果如下图,可是实现printf函数的打印。 


这里写图片描述

推荐阅读

史海拾趣

Herrmann Kg公司的发展小趣事

近年来,Herrmann Kg积极推进数字化转型,以提升公司的竞争力和市场响应速度。公司任命了具有丰富行业经验的首席数字官(CDO),负责推动集团内部流程的数字化转型。通过数字化整合业务流程,Herrmann Kg简化了与客户之间的沟通方式,优化了工作速度和透明度,同时为全球客户提供了一致的优质体验。这一战略转型不仅提升了公司的运营效率,还为客户创造了更多的附加价值技术的。

GC Electronics公司的发展小趣事
定期清洁传感器和冷却系统,防止污垢或杂质影响传感器的正常工作。
Freqtech Ohg公司的发展小趣事

在电子行业的激烈竞争中,Freqtech Ohg公司深知技术创新的重要性。公司投入大量研发资源,专注于高频电子技术的研发。经过数年的努力,Freqtech成功开发出一款高性能的高频滤波器,该产品在信号传输效率和稳定性方面远超同类竞品。这一技术创新不仅为公司赢得了国内外多个重要客户,还使得Freqtech在高频电子领域迅速崛起,成为行业内的佼佼者。

Fair Rite公司的发展小趣事

随着全球进入数字化、网络化、智能化时代,电子元器件市场发生了深刻的变化。Fair Rite积极应对市场变化,通过技术创新和产品研发,不断推出适应新需求的产品。例如,公司针对EMF/EMI干扰较严重或容易出现导漏流问题的情况,推出了EMI抑制铁芯线圈(SM-BL系列),帮助客户节省PCB空间并降低干扰信号。同时,Fair Rite还注重满足客户的性价比需求,为每个新产品进行定制化设计和质量验证(遵循ISO9001:2008标准),确保其在不同应用场景下稳定可靠。

这些故事展示了Fair Rite在电子行业中不断发展壮大的历程。通过不断创新、拓展市场和提升品质,Fair Rite已经成为电子行业中的佼佼者之一。

ALSC [Alliance Semiconductor Corporation]公司的发展小趣事

ALSC公司成立于XXXX年,初创期面临着激烈的市场竞争和技术壁垒。然而,创始人凭借对半导体技术的深刻理解和市场需求的敏锐洞察,决定专注于开发高性能、低功耗的半导体产品。经过多次尝试和不断改进,公司成功推出了一款具有竞争力的产品,并逐渐在市场上获得了一席之地。

Flexxon Pte Ltd公司的发展小趣事

Flextronics(虚构为Flexxon Pte Ltd)自上世纪90年代末成立以来,便致力于成为全球供应链整合的领军者。公司最初从新加坡起步,迅速在全球范围内建立了多个生产基地和研发中心,以满足客户对电子产品快速响应和高质量生产的需求。通过高效的供应链管理,Flextronics不仅缩短了产品上市时间,还大幅降低了生产成本,赢得了包括惠普、戴尔、诺基亚等国际巨头的信任与合作。

问答坊 | AI 解惑

单片机的多机无线短信通信系统设计

现代通信技术的迅速发展使得许多应用领域都采用无线的通信方式进行数据传输。编解码芯片PT2262、PT2272组成的电路,由于具有体积小、功耗低、功能强、成本低等特点,广泛应用于各类的无线遥控器、无线报警器以及玩具等其他小型电器装置。但是,这种 ...…

查看全部问答>

求篇基于单片机的水箱水位控制系统毕业论文

不要海丰800立方米那个,有的帮下,谢谢…

查看全部问答>

从本坛别处转来proteus教程keil错误警告mcu外围芯片

别处售价太贵我给转一下,如若涉及到侵权,请跟帖告知 加分就免了…

查看全部问答>

为什么EVC创建建Pocket PC 2003 程序时,默认就变standardsdk了?

然后我选Pocket PC 2003 平台,evc就卡住了 .无法响应 都重装好几次EVC,Pocket PC 2003  SDK了…

查看全部问答>

为什么sysgen hpc 产生两个大小不同的ceshell.lib

C:\\WINCE500\\PBWorkspaces\\simu3\\WINCE500\\Emulator_x86\\cesysgen\\sdk\\lib\\x86\\retail\\ceshell.lib   (5K) C:\\WINCE500\\PUBLIC\\SHELL\\OAK\\LIB\\X86\\RETAIL\\ceshell.lib    (1150K) 我的hpc是从wince老版本 ...…

查看全部问答>

求助!怎样理解一种开发板能不能支持某种操作系统?

各位好: 我买开发板的时候经常听到有人问这种开发板能不能支持某一种操作系统,比如VxWorks操作系统。 我是菜鸟,我不理解所谓的开发板能不能支持什么操作系统。但我查了有关资料之后就产生如下理解: “一种开发板能不能支持某一种操作系统, ...…

查看全部问答>

一个学了一年VC的人去做车载音响软件开发需要学习什么硬件知识,请大家帮忙!

        各位好,请过来人帮忙!我本来是准备走VC应用程序道路的,大四上学期才开始学的VC,找了将近半年多的VC工作没有找到。现在反而找到一个机会去做车载音响软件开发。当时面试官说你学桌面软件的,但我们是做那种单片机 ...…

查看全部问答>

我为北京国企整车厂猎贤

实验室管理工程师 设备管理工程师 电池质量工程师 EMC整改工程师 信号完整性分析工程师 硬件电路设计工程师 软件工程师 硬件工程师 Windows程序开发工程师 电池管理系统控制策略开发工程师 电池管理系统安全工程师 电网配电工程师 充电 ...…

查看全部问答>

求 Profile Identifier!

How 2 “Getting a Profile Identifier from the ZigBee Alliance”  without require from Zigbee Alliance?? is anyone alrady have the ENUM of the identifier?both manufacturer-specific and public is excellent!…

查看全部问答>

智能电网设备应用中必须保证的高要求高标准

               智能电网设备应用中必须保证的高要求高标准以2008年中国北京奥运会成功举办为契机,近五年来,中国大力推动智慧城市的发展,其中智能电网系统就是重要组成部分。从2011年开始, ...…

查看全部问答>