• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

stm32在vs2017+vsGDB中如何重定向printf

wu151932 2018-07-09 浏览量:3714
P80709-171443.jpg

stm32在visual studio 2017+visualGDB环境中无法重定向,环境好像是gcc


P80709-171457.jpgP80709-171533.jpgP80709-171921.jpg

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • STM32中串口输出使用printf函数,有两种方法:1.使用microlib;2.使用标准库; 
    (1) 使用microlib方法

    ①添加printf的头文件 #include <stdio.h>

    ②重写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;
    }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    若未使用库函数,需将USART_SendData、USART_GetFlagStatus重写。 
    ③修改一下选中Use MicroLIB Target——Code Generation——选中Use MicroLIB。

    (2) 使用标准库 
    不选中Use MicroLIB 。 
    ① 添加printf的头文件 #include <stdio.h> 
    ② 加入下面代码 
    ③ 01 //加入以下代码支持printf函数而不需要选择use MicroLIB

    需要更详细了解的话,可以查看这篇文档:https://blog.csdn.net/sworssman/article/details/52999840

乱雪丶 回复了 捷波:vs gdb支持microlib?? 回复
乱雪丶 回复了 捷波:vs gdb支持microlib?? 回复
乱雪丶 回复了 捷波:vs gdb支持microlib?? 回复
乱雪丶 回复了 捷波:vs gdb支持microlib?? 回复
乱雪丶 回复了 捷波:vs gdb支持microlib?? 回复
乱雪丶 回复了 捷波:vs gdb支持microlib?? 回复
乱雪丶 回复了 捷波:vs gdb支持microlib?? 回复
乱雪丶 回复了 捷波:vs gdb支持microlib?? 回复
乱雪丶 回复了 捷波:vs gdb支持microlib?? 回复
乱雪丶 回复了 捷波:vs gdb支持microlib?? 回复
乱雪丶 回复了 捷波:额,网络卡~~ 回复
捷波 回复了 乱雪丶:没有microlib,可以使用标准库 回复

其他答案 数量:4

  • 没看出哪里有问题,最好能再描述下。
    • 发布于2018-07-15
    • 举报
    • 评论 5
    • 0
    • 0
wu151932 回复了 捷波 :无法打印浮点数然后字符串长了,或者汉字也无法打印 回复
wu151932 回复了 捷波 :浮点说他是无法打印的。 回复
wu151932 回复了 捷波 :这个的写法和keil4的好像不一样 回复
捷波 回复了 wu151932 :printf()在c标准库函数中实质是一个宏,最终调用了fputc()这个函数,你这里修改的是_write好像不对吧! 回复
wu151932 回复了 捷波 :这个是gcc环境 回复

  • 最简单是八方是直接在工程里面添加MicroLIB库,导入这个库就可以进行重定向
    • 发布于2018-07-18
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

stm32在vs2017+vsGDB中如何重定向printf