历史上的今天
今天是: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函数的打印。

史海拾趣
|
现代通信技术的迅速发展使得许多应用领域都采用无线的通信方式进行数据传输。编解码芯片PT2262、PT2272组成的电路,由于具有体积小、功耗低、功能强、成本低等特点,广泛应用于各类的无线遥控器、无线报警器以及玩具等其他小型电器装置。但是,这种 ...… 查看全部问答> |
|
为什么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程序开发工程师 电池管理系统控制策略开发工程师 电池管理系统安全工程师 电网配电工程师 充电 ...… 查看全部问答> |
|
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年开始, ...… 查看全部问答> |




