STM32串口重定向:MDK与GCC重定向需重写的不同函数

STM32串口重定向:MDK与GCC重定向需重写的不同函数

在嵌入式开发过程中,特别是在使用STM32系列微控制器时,调试是一个不可或缺的环节。为了方便调试,通常会将printf等标准输出函数通过UART串口输出到PC端。然而,在不同的编译环境下(如MDK和GCC),实现这一功能需要重写的函数有所不同。本文旨在探讨如何在这两种环境中进行串口重定向,并指出它们之间需要重写的函数差异。

无论是MDK还是GCC环境,实现STM32串口重定向的关键都在于正确地重写相应的输出函数。尽管两个环境下的具体实现细节有所区别------MDK侧重于fputc函数的重写,而GCC则更多关注于_write函数的实现------但目的都是为了能够方便地利用串口输出调试信息。

当然为了方便可以直接复制两种重写的代码

c 复制代码
//串口重定向函数
//keil的重定向函数
#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,2000);
    //重定向到对应的串口即可
    return ch;
}
//GCC的重定向函数
int _write(int fd, char *ptr, int len)
{
  HAL_UART_Transmit(&huart1, (uint8_t*)ptr, len, 0xFFFF);
  return len;
}
相关推荐
数智顾问1 小时前
(84页PPT)PWC海科集团生物医药业务5年发展战略项目建议书(附下载方式)
大数据·人工智能·物联网
LCG元2 小时前
STM32 RS485 Modbus RTU通信系统设计:从协议解析到工程实战
stm32·单片机·嵌入式硬件
MetrixAeroCore2 小时前
智能快递柜格口监控物联网卡在老旧小区弱网环境下多运营商切换组网方案
物联网
北京晶数信息科技2 小时前
加油站成品油智慧监管系统项目建设实施汇报(一)
大数据·物联网·产品经理·需求分析
TurMass工程师2 小时前
什么是 TurMass™ Mesh?它在电力物联网感知网络中起什么作用?
物联网·电力物联网·turmass·turmassmesh
qasxc785632 小时前
杰理蓝牙串口打印调试
单片机·嵌入式硬件
测功机之家2 小时前
国内口碑好的测功机公司找哪家
python·物联网
AimerMilet12 小时前
物联网卡流量池是什么意思?企业用划算吗?
物联网
Xxtaoaooo13 小时前
DolphinDB 物联网数据平台全景:一份从架构到落地的实践地图
物联网·系统架构·时序数据库·数据库架构·dolphindb
sramdram16 小时前
MCU微控制器OA打印机方案
单片机·嵌入式硬件·mcu·mcu微控制器