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

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配置

 2.1.2 RCC配置

2.2 串口外设配置

 接着将串口2、3分别打开,如下图所示:

 

 2.3 项目生成

 3、KEIL端程序整合

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

void Uart_printf(UART_HandleTypeDef *huart,char *format, ...)
{char buf[512]; //定义临时数组,根据实际发送大小微调va_list args;va_start(args, format);uint16_t len = vsnprintf((char *)buf, sizeof(buf), (char *)format, args);va_end(args);HAL_UART_Transmit(huart,(uint8_t *)buf,len,1000);
}

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

#include <stdlib.h>
#include <stdio.h>
#include <stdarg.h>

最后设置如下

  4、效果测试

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

Uart_printf(&huart1,"%d\n",10); 

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

 

上文如有错误,恳请各位大佬指正。

http://www.lryc.cn/news/104581.html

相关文章:

  • 29_互联网(The Internet)(IP数据包;UDP;TCP;DNS;OSI)
  • xShell常用命令
  • React性能优化之Memo、useMemo
  • IDEA开启并配置services窗口
  • vue2企业级项目(三)
  • QT 在label上透明绘图
  • SAM(Segment Anything)大模型论文汇总
  • 金融翻译难吗,如何做好金融翻译?
  • Java面试题(Tomcat与Nginx)
  • React-使用mobx
  • LeetCode ACM模式——哈希表篇(一)
  • WPF实战学习笔记31-登录界面全局通知
  • 通用商城项目(中)
  • 谨慎使用JSON.stringify
  • 驱动开发day8
  • CAS 机制
  • #P1003. [NOIP2009普及组] 道路游戏
  • python-网络爬虫.regular
  • 手动搭建gateway,项目集成gateway实现Token效果
  • linux下SVN服务器搭建
  • 技术等级 TRL 定义
  • DHorse v1.3.0 发布,基于k8s的发布平台
  • Redis - 缓存的双写一致性
  • opencv03-Mat矩阵API的使用
  • 2023届浙江大学MPA提面A资格经验总结分享
  • BugKu CTF(杂项篇MISC)—想要种子吗
  • 类之间的关系
  • 【蓝图】p40-p43对象引用、变量有效性、实现键盘控制物体自转、简单点名系统
  • vscode设置远程登录和免密登录
  • 今日头条面试真题及答案,软件测试工程师面试秘籍