Stm32 - Printf重定向(不)使用微库(Keil MDK)

转载 2017年01月02日 21:35:23


#define DEBUG_USART USART1


stm32芯片调试中经常用到串口来打印一些数据,因此如果能使用类似windowsConsole中的printf就很完美了~

方法1--使用微库:

1、使用微库(平台式keil-MDK),点击“魔术棒” Target标签下有个Use MicroLIB---勾选。

2、包含头文件:#include "stdio.h"

3Printf重定向,修改fputc()函数的内容~

int fputc(int ch, FILE *f)

{

USART_SendData(DEBUG_USART, (unsigned char) ch);

while (!(DEBUG_USART->SR & USART_FLAG_TXE));

return (ch);

}

这里的:USART_SendData(DEBUG_USART, (unsigned char) ch);

while (!(DEBUG_USART->SR & USART_FLAG_TXE));

就是往串口发送一个字节的代码,修改相应的串口,初始化。这样就能使用printf~可以一试。


方法2--不使用微库(那么就要强调不使用半主机(no semihosting)模式)

1、包含头文件#include "stdio.h"

2、重写fputc,但需要先加点东西:

#pragma import(__use_no_semihosting)

_sys_exit(int x)

{

x = x;

}

struct __FILE

{

int handle;

 

 

 

};

 

FILE __stdout;

int fputc(int ch, FILE *f)

{

USART_SendData(DEBUG_USART, (unsigned char) ch);

while (!(DEBUG_USART->SR & USART_FLAG_TXE));

return (ch);

}

这样,就完成了,同样可以使用printf语句了~

http://blog.sina.com.cn/s/blog_b4ce638e0102w9fw.html

相关文章推荐

STM32中关于串口通信的printf()函数重定向问题

在STM32串口通信程序中使用printf发送数据,非常的方便。可在刚开始使用的时候总是遇到问题,常见的是硬件访真时无法进入main主函数,其实只要简单的配置一下就可以了。 下面就说一下使用pr...
  • kevinhg
  • kevinhg
  • 2014年10月12日 12:42
  • 9487

stm32之printf重定向

在程序的调试过程中,除了那些高大上的调试手段外,printf无疑是我们最熟悉最顺手的调试方法。通过使用printf,我们可以很方便很直观的获取当前程序的运行状态。 printf()函数是格式...

STM32 printf重定向

STM32串口通信中使用printf发送数据配置方法(开发环境 Keil RVMDK) 标签:  STM32  串口通信  printf方法  2011-06-29 23:29  在STM32串口...

STM32中printf重定向到串口

STM32中printf重定向到串口           学习STM32过程中,经常打交道的莫过于串口,你可以将任何信息,当然重要的是调试信息打印到串口中输出,总是用一个字节发送函数或者字符串发送...

STM32中printf与scanf的重定向问题

关于STM32中 printf 与 scanf 的重定向问题在此我仅对不使用 "USE MircoLIB" 的情况做整理(针对Keil RVMDK开发环境)。 ① :首先需要在 usart....

stm32实现printf重定向到LCD显示屏

转自:http://www.51hei.com/bbs/dpj-35962-1.html 嘿嘿,学习stm32已经有一段时间了。以前纠结过一个问题,(USART)串口的可变参数问题,查找C语言的书终...

STM32中printf重定向到串口

STM32中printf重定向到串口           学习STM32过程中,经常打交道的莫过于串口,你可以将任何信息,当然重要的是调试信息打印到串口中输出,总是用一个字节发送函数或者字...

STM32中printf重定向到串口

STM32中printf重定向到串口          学习STM32过程中,经常打交道的莫过于串口,你可以将任何信息,当然重要的是调试信息打印到串口中输出,总是用一个字节发送函数或者字符串发送函数...

STM32+Keil 如何使用printf函数?

【lanmanck原创】 Keil不支持Host-semi机制,即不支持直接在IDE打印字符串。 那么只能通过程序向硬件串口发数据了,这样调用的时候用自定义的函数即可,也很方便,例如: vo...
  • lanmanck
  • lanmanck
  • 2013年12月19日 11:07
  • 23667

STM32 keil printf的使用

转:http://zggcj.blog.163.com/blog/static/191275229201111822229703/ 请在MDK(keil)工程属性的“Targ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Stm32 - Printf重定向(不)使用微库(Keil MDK)
举报原因:
原因补充:

(最多只允许输入30个字)