打印

如何修改printf的输出端?

[复制链接]
5375|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
篮下打铁|  楼主 | 2011-6-27 22:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
篮下打铁|  楼主 | 2011-6-27 22:24 | 只看该作者

使用特权

评论回复
板凳
篮下打铁|  楼主 | 2011-6-27 22:27 | 只看该作者
貌似是修改termio.h的函数?
会的说说

使用特权

评论回复
地板
mohanwei| | 2011-6-27 23:15 | 只看该作者
keil?默认就是从串口输出的。不过默认是采用查询法,并且串口初始化后,需要把TI置1——原因自己看keil目录下的putchar.c

使用特权

评论回复
5
原野之狼| | 2011-6-27 23:26 | 只看该作者
用的是什么软硬件平台?

使用特权

评论回复
6
helongdm| | 2011-6-28 09:34 | 只看该作者
keil 中要重定向  例如stm32
/*******************************************************************************
        函数名:fputc
        输  入:
        输  出:
        功能说明:
        重定义putc函数,这样可以使用printf函数从串口1打印输出
*/
int fputc(int ch, FILE *f)
{
        /* Place your implementation of fputc here */
        /* e.g. write a character to the USART */
        USART_SendData(USART1, (uint8_t) ch);

        /* Loop until the end of transmission */
        while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET)
        {}

        return ch;
}

使用特权

评论回复
7
篮下打铁|  楼主 | 2011-6-28 10:15 | 只看该作者
5# 原野之狼

codewarrior 飞思卡尔的9s12x128

使用特权

评论回复
8
篮下打铁|  楼主 | 2011-6-28 10:21 | 只看该作者
4# mohanwei

这个putchar.c是标准库里的东西,貌似看不到的吧!
有个void TERMIO_PutChar(char ch);的改了就可以输出了。
在TERMIO.H的里的,这个TERMIO.H是什么?

使用特权

评论回复
9
篮下打铁|  楼主 | 2011-6-28 10:26 | 只看该作者
6# helongdm

你的意思是printf是通过fputc输出的,修改fputc就可以了。
但是fputc是stdio.h里面的,怎么能打开查看呢?

使用特权

评论回复
10
xwj| | 2011-6-28 10:30 | 只看该作者
重定义putchar(或类似)函数即可,会自动覆盖库的

使用特权

评论回复
11
篮下打铁|  楼主 | 2011-6-28 10:40 | 只看该作者
10# xwj

termio.h 里面的TERMIO_PutChar是什么东西?
有个程序修改了这个也可以。

使用特权

评论回复
12
helongdm| | 2011-6-28 10:56 | 只看该作者
在keil  C51可重写个printf函数   你想用printf无非就是想用他的格式化输出对吧  写个格式化输出

使用特权

评论回复
13
xwj| | 2011-6-28 11:00 | 只看该作者
LZ,先说明是什么CPU、什么编译器

使用特权

评论回复
14
原野之狼| | 2011-6-28 11:15 | 只看该作者
翻阅下你的开发平台的文档里关于 重定向 的内容介绍
基本的思路LS各位已经指出来了 不外乎修改一些IO函数  具体是什么函数那就查文档吧

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

17

帖子

0

粉丝