学习STM32过程中,经常打交道的莫过于串口,你可以将任何信息,当然重要的是调试信息打印到串口中输出,总是用一个字节发送函数或者字符串发送函数 总是有些不放便,之前编程中熟悉的莫过于printf了,下面就给出了用printf打印到串口的方案,当然方案不止一个,仅供参考。 
1、 添加printf的头文件   #include <stdio.h>
2、重写int fputc(int ch, FILE *f)函数  int fputc(int ch, FILE *f); 函数 
int fputc(int ch, FILE *f)
{
USART_SendData(USART1, (uint8_t) ch);
while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET);
return ch;
}
3、修改一下选中Use MicroLIB   
Target——Code Generation——选中Use MicroLIB 这样就可以像以前那样使用printf了。

转载于:https://www.cnblogs.com/FarmPick/p/6434859.html

STM32中printf重定向到串口相关推荐

  1. STM32使用printf重定向到USART(串口)并打印数据到串口助手

    STM32使用sprintf打印数据到串口助手 一.背景知识 二. 重定向printf到USART1 三.使用printf打印hello,world到串口助手 3.1 usart.c 3.2 usar ...

  2. c语言输入输出重定向到串口,关于printf重定向到串口的问题分析 - 全文

    关于printf重定向到串口的问题 简单地说:想在mdk 中用printf,需要同时重定义fputc函数和避免使用semihosTIng(半主机模式), 标准库函数的默认输出设备是显示器,要实现在串口 ...

  3. stm32中如何进行printf重定向用于串口调试输出

    1 在main中包含stdio.h 文件 2 Target选项框里选Use MicroLib 选项 3 在main中添加UART1_Configuration()初始化的代码 Uart1初始化, vo ...

  4. keil5 stm32f03c8t6 printf重定向到串口和TFT 1.44 LCD屏

    效果 keil5工程设置,这一步很重要: 在任意的源文件里重写int fputc(int ch, FILE* f)函数 代码: print.h #ifndef __PRINT_H__ #define ...

  5. Arduino处理STM32中的多个串口通讯问题

    简 介: 对于在Arduino下开发STM32的程序,对于STM32所具有的三个硬件USART进行测测试.结果显示可以使用这些串口完成相应的数据的输入与输出.但是涉及到以下两个问题,还没有得到解决:问 ...

  6. MCU中printf重定向实现

    // 添加头文件 #include "stdio.h" #include "stdarg.h"  //全局变量 bit TI_busy; unsigned ch ...

  7. STM32中的串口通信的基础知识

    目录 串口通信基本原理 并行通信与串行通信 串行通信中单工,半双工和全双工的区别 按通信方式不同又可分为异步通信和同步通信 常见的串行通信接口 STM32中的5个串口引脚 STM32中USART的通信 ...

  8. C语言printf重入,单片机中printf函数的重映射

    单片机中printf函数的重映射 一.源自于:大侠有话说 1.如果你在学习单片机之前学过C语言,那么一定知道printf这个函数.它最最好用的功能 除了打印你想要的字符到屏幕上外,还能把数字进行格式化 ...

  9. 关于STM32中使用printf通过串口发送数据

    printf 是源文件 stdio.h 中的函数(同c语言) 使用 printf 必须先引用源文件:#include "stdio.h" printf 内部会调用 fputc 函数 ...

最新文章

  1. 流媒体服务器之rtp协议,rtcp协议,rtsp协议,sdp协议,sip协议简析
  2. svn checkout 报svn:url js not prorerly uri-encoded
  3. 《系统集成项目管理工程师》必背100个知识点-57沟通管理
  4. ios 静态库合成_iOS生成静态库方法-iOS集成静态库-iOS合并静态库
  5. Prototype 字符串
  6. Intel 64/x86_64/IA-32/x86处理器 - 通用指令(9/E) - 比特位操控指令(BMI1 BMI2)
  7. effective c# 明白几个相等运算
  8. 身份证前六位地址验证
  9. c语言中文网GUI,golang gui介绍
  10. pacman 查询_pacman (简体中文)
  11. ARouter there is no route matched
  12. 【GNN】循序渐进认识SSL
  13. 微信支付、微信公众号接口认证方案
  14. 从0开始学c语言-总结01-c语言的粗略认识和快捷键
  15. 数据分析师必须掌握的 十三大数据分析方法论!
  16. 一 类加载机制深度解析
  17. linux合并pdf命令,科学网—[转载]linux下利用命令行工具pdftk对PDF进行合并分割(转载) - 崔鹏碧的博文...
  18. 高等数学(第七版)同济大学 习题7-1 个人解答
  19. 汽车主动悬挂系matlab,基于Matlab的汽车主动悬架控制器设计与仿真.doc
  20. Oracle 电子期刊下载

热门文章

  1. 【Qt】dumpbin详解
  2. Linux拷贝数据死机了,Linux系统“死机”时怎么办?
  3. 取代java_如何评价 Kotlin?未来是否会取代 Java?
  4. android 读取内部存储文件格式,Android中的数据储存之文件存储
  5. 加载vue文件步骤_无法在重新加载时读取vue文件
  6. python bytearray拼接_python数据类型 ——bytes 和 bytearray
  7. Java项目:人力管理系统(java+Gui+文档)
  8. ssm 异常捕获 统一处理_SpringMVC 统一异常处理介绍及实战
  9. AttributeError: Cant get attribute SPPF on module models
  10. [微信小程序]上传单张和多张图片