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

如何在STM32CubeMX下为STM32工程配置调试打印功能

为STM32工程配置调试打印功能

一、配置调试用的打印串口

#include <stdio.h>		//标准输入输出库//1.在STM32CubeMX中打开并配置好某串口设备;
//2.在main.c文件中添加如下代码行对输入输出重定向;
//3.在文件开头包含stdio.h头文件。
#pragma import(__use_no_semihosting)
struct __FILE
{int a;
};FILE __stdin, __stdout;void _sys_exit(int x)
{}//printf函数的父类函数
int fputc(int ch, FILE *f)
{//调试串口的发送函数HAL_UART_Transmit(&husart?, (uint8_t *)&ch, 1, 10);return ch;
}//scanf函数的父类函数
int fgetc(FILE *f)
{uint8_t ch = 0;//调试串口的接收函数HAL_UART_Receive(&husart?, (uint8_t *)&ch, 1, 10);return (int)ch;
}

二、配置USB作为虚拟打印端口

#include <stdarg.h>//1.在STM32CubeMX中配置好RCC(HCLK = 72MHz)、打开USB功能,
//2.在中间件和软件包菜单项里,勾选USB_DEVICE,并选择工作模式为
//   Communication Device Class(Virtual Port Com)
//3.生成代码后,工程文件中会自动生成usb_device.c、usbd_desc.c
//  以及usbd_cdc_if.c三个文件,我们需要在usbd_cdc_if.c文件末尾
//  添加如下usb打印函数,以后就是用该打印函数进行调试输出
//4.记得在开头包含头文件stdarg.h
void usb_printf(const char *format, ...)
{va_list args;uint32_t length;va_start(args, format);length = vsnprintf((char *)UserTxBufferFS, APP_TX_DATA_SIZE, (char *)format, args);va_end(args);CDC_Transmit_FS(UserTxBufferFS, length);
}
http://www.lryc.cn/news/2387833.html

相关文章:

  • Linux系统 - 基本概念
  • kerberos在无痕浏览器 获取用户信息失败 如何判断是否无痕浏览器
  • 在h5端实现录音发送功能(兼容内嵌微信小程序) recorder-core
  • PDF电子发票数据提取至Excel
  • 【身份证识别表格】把大量手机拍摄的身份证信息转换成EXCEL表格的数据,拍的身份证照片转成excel表格保存,基于WPF和腾讯OCR的实现方案
  • FPGA高速接口 mipi lvds cameralink hdml 千兆网 sdi
  • Linux路径解析指南:逻辑路径 vs 实际路径详解
  • Azure 公有云基础架构与核心服务:从基础到实践指南
  • 【运维_日常报错解决方案_docker系列】一、docker系统不起来
  • C# 数组与字符串:全面解析与应用实践
  • 前端vue中使用signalr
  • Stable Diffusion底模对应的VAE推荐
  • centos7.5安装kubernetes1.25.0
  • ‌AT2659S射频前端芯片技术解析:L1频段低噪声高增益GNSS信号放大
  • ROS2学习(15)------ROS2 TF2 机器人坐标系管理器
  • 每日c/c++题 备战蓝桥杯(洛谷P3382 三分法求极值详解)
  • Vue+css实现扫描动画效果(使用@keyframes scan)
  • Windows 配置 ssh 秘钥登录 Ubuntu
  • Conda:环境移植及更新1--使用conda-pack
  • github好玩的工具
  • PHP学习笔记(九)
  • 共现矩阵的SVD降维与低维词向量计算详解
  • 信创 CDC 实战 | OGG、Attunity……之后,信创数据库实时同步链路如何构建?(以 GaussDB 数据入仓为例)
  • PyQt学习系列08-插件系统与模块化开发
  • Redis核心数据结构操作指南:字符串、哈希、列表详解
  • 微服务(SpringCloud)的简单介绍
  • Python 爬虫开发
  • 第十一周作业
  • 猿大师办公助手网页编辑Office/wps支持服务器文件多线程下载吗?
  • 英码科技携带 “无感知AI数字课堂”解决方案,亮相第22届广东教育装备展