当前位置: 首页 > java >正文

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

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

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

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

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

//串口重定向函数
//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;
}
http://www.xdnf.cn/news/1223.html

相关文章:

  • UE5 鼠标点击一个物体触发Onclick事件
  • 死信队列完整处理方案
  • AiEditor v1.3.8 发布
  • 2023蓝帽杯初赛内存取证-3
  • vmstat指令介绍
  • 自动化测试实现容器化部署
  • C#内存管理深度解析:值类型与引用类型全解析
  • Linux命令-pidstat
  • Python简介与入门
  • 使用若依二次开发商城系统-4:商品属性
  • 无价值的劳动与暴力威胁是否会导致人性逆转?-来自DeepSeek
  • WP快主题
  • 激光SLAM算法综述
  • 滚动的足球-第16届蓝桥第4次STEMA测评Scratch真题第3题
  • Android Studio调试中的坑二
  • C++与C
  • 1.微服务拆分与通信模式
  • NLP高频面试题(五十一)——LSTM详解
  • 【机器学习】决策树算法中的 “黄金指标”:基尼系数深度剖析
  • MCP Server架构设计详解:一文掌握框架核心
  • PowerBi中REMOVEFILTERS怎么使用?
  • 虚无隧穿产生宇宙(true nothing tunneling) 是谁提出的
  • 【Spring Boot】MyBatis多表查询的操作:注解和XML实现SQL语句
  • 权限管理降维打击:AI自动生成分布式系统鉴权代码(含JWT刷新策略)
  • 如何通过证书认证安全登录堡垒机、防火墙和VPN?安当KSP密钥管理系统助力企业实现零信任身份验证
  • 【中级软件设计师】程序设计语言基础成分
  • 3.1.2 materialDesign:Card 的使用介绍
  • VUE篇之,实现锚点定位,滚动与导航联动
  • 黑盒测试——等价类划分法实验
  • 虚拟机超详细Ubuntu安装教程