星辰一方 发表于 2015-9-9 12:20:45

基于cubeMX的printf重定向,哪位大神可以帮忙?

最近做数据采集,需要用串口,但是各种输出格式转换很麻烦,想来还是printf比较方便,后来坛里搜到了教程,但是不知道为什么我按照教程试了,没有反应都,以下几篇都试过了:
https://www.stmcu.org.cn/module/forum/thread-598389-1-1.html
https://www.stmcu.org.cn/module/forum/thread-602600-1-1.html

也可能两位大神用的都是基于标准库的,我想请教下哪位能帮我弄个基于HAL的printf重定向?直接在nucleo上运行,非常感谢!

watershade 发表于 2015-9-9 12:20:46

试试这个,我测试过。不过是411,你可以按照main里面的试一下。 cube库里面本身也有类似的例子。

yanhaijian 发表于 2015-9-9 12:36:35

主要是fputc/fgetc两个函数的重定向。

风子 发表于 2015-9-9 15:22:38

记得好像论坛里看到过

Paderboy 发表于 2015-9-9 16:00:08

#include "stdio.h"

#ifdef __GNUC__
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif
PUTCHAR_PROTOTYPE
{
HAL_UART_Transmit(&huart2 , (uint8_t *)&ch, 1, 0xFFFF);
return ch;
}
这个是HAL 库下的printf 使用方法。。 你用cube配置好串口就可以了。。

你好我好大家好! 发表于 2015-9-9 16:38:55

帮顶喽                     

星辰一方 发表于 2015-9-10 16:32:10

watershade 发表于 2015-9-9 22:38
试试这个,我测试过。不过是411,你可以按照main里面的试一下。 cube库里面本身也有类似的例子。
...

多谢大神!搞定了,原因找到了:我在printf之前使用了串口中断方式发送了两个字节数据,造成后面都没反应!

星辰一方 发表于 2015-9-10 16:32:25

Paderboy 发表于 2015-9-9 16:00
#include "stdio.h"

#ifdef __GNUC__


多谢大神!搞定了,原因找到了:我在printf之前使用了串口中断方式发送了两个字节数据,造成后面都没反应!

星辰一方 发表于 2015-9-10 16:32:43

你好我好大家好! 发表于 2015-9-9 16:38
帮顶喽

原因找到了!已经解决,

星辰一方 发表于 2015-9-10 16:33:39

Paderboy 发表于 2015-9-9 16:00
#include "stdio.h"

#ifdef __GNUC__


可惜最佳答案只能选一个,多谢大神帮助!
页: [1] 2
查看完整版本: 基于cubeMX的printf重定向,哪位大神可以帮忙?