STM32串口printf()重定向问题

在用神州III号开发板做串口打印实验的时候,按以下步骤将printf()函数重定向为串口,可是发现超级终端怎么也不打印消息,非常郁闷,有谁能帮我解答一下这是为什么么?1、... 在用神州III号开发板做串口打印实验的时候,按以下步骤将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了。
展开
 我来答
百度网友7a135ba
2013-08-29
知道答主
回答量:20
采纳率:0%
帮助的人:16.7万
展开全部
你先试试自己的串口是否配置正确,所以可以使用USART_SendData(USART1, (uint8_t) ch);这个函数随便发个字符a之类的,如果这个没问题,再检查是否是重定向的问题
海阔天kongcyc
2013-08-24 · 超过11用户采纳过TA的回答
知道答主
回答量:30
采纳率:0%
帮助的人:26.4万
展开全部
/printf从定向
int fputc(int ch,FILE *p)
{
USART_SendData(USART2,(u8)ch);
while(USART_GetFlagStatus(USART2,USART_FLAG_TXE)==RESET);
return ch;
}

这个是我的重定向函数,串口跟你选择不一样,其他都一样的,所以我想这一部分你可能没有问题吧,想想有没有其他地方出现问题呢!
追问
给这个折磨的快不行了,所以后来就用标准模板了,在那里改可以实现,但是我就是搞不懂为嘛我自己重定向的函数就是没消息可以打印出来~
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cqpcy
2013-08-27 · TA获得超过658个赞
知道小有建树答主
回答量:746
采纳率:66%
帮助的人:363万
展开全部
除了这么写还要在使用前对相关串口初始化
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式