Eclipse 构建 STM32 工程中 如何实现printf函数

2019-07-14 18:27发布

自己搭建了 STM32 Eclipse 的工程 但是无法实现prinf函数 想请教一下各路神仙怎么实现啊
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
testd018
1楼-- · 2019-07-15 04:26
guanrui1202 发表于 2018-8-20 08:20
                                                                             STM32中printf重定向到串口
        学习STM32过程中,经常打交道的莫过于串口,你可以将任何信息,当然重要的是调试信息打印到串口中输出,总是用一个字节发送函数或者字符串发 ...

你这个是错的,因为环境是gcc而不是MDK。
楼主在问问题钱不会搜论坛就直接发帖子,资源太浪费了。
参考下面的帖子吧
http://www.stmcu.org/module/forum/thread-612930-1-1.html
http://www.stmcu.org/module/foru ... mp;highlight=printf
wang222221
2楼-- · 2019-07-15 09:19
 精彩回答 2  元偷偷看……
60user74
3楼-- · 2019-07-15 14:28
testd018 发表于 2018-8-20 08:37
你这个是错的,因为环境是gcc而不是MDK。
楼主在问问题钱不会搜论坛就直接发帖子,资源太浪费了。
参考下面的帖子吧

试过了  还是不行
快乐一天天
4楼-- · 2019-07-15 16:55
Eclipse对C库支持的不好,默认的是newlib库,你得添加对C库的函数支持,这里有点文章你参考下,应该能帮到你。
http://blog.csdn.net/qiuzhiqian1 ... ionNum=10&fps=1
guanrui1202
5楼-- · 2019-07-15 18:43
一下代码可用,请参考!!
#include <stdio.h>
#include <unistd.h>
#include "stm32l4xx_hal.h"

extern UART_HandleTypeDef hlpuart1;
int _write(int32_t fd, char* ptr, int32_t len);

int _write(int32_t fd, char* ptr, int32_t len) {
        if (fd == STDOUT_FILENO || fd == STDERR_FILENO) {
                int32_t i = 0;
                while (i < len)
                        HAL_UART_Transmit(&hlpuart1, (uint8_t *) &ptr[i++], 1, 0xFFFF);

        }
        return len;
}

一周热门 更多>