TI中文支持网
TI专业的中文技术问题搜集分享网站

关于CCS 6.1 printf重定向后输出信息不完整的问题

        单片机是TMS570LS3137。目的是利用printf将调试信息输出到SCI串口。

        fputs已经重定义。引用头文件stdio.h。CCS工程中,“Enable CIO function use”已勾选。“heap size”已设为0x800。

        现在的现象是:字符串能够正常输出,但printf后面携带的参数仍然打印在CCS console窗口中。如"printf("Hello World %d!\r\n",i);",SCI串口中能正常输出“Hello World !”,但"%d"对应变量i的数值在CCS console窗口输出。如果去除fputs重定义,则数据可以在console窗口完整输出。

        同样的程序,在KEIL工程中,printf的数据能够完整输出到SCI串口,因此认为可以排除fputs重定义程序问题。

        请问,CCS是否还需要其它配置,才能使printf的数据完全从SCI串口输出?

gaoyang9992006:

在虚拟窗口是不完整的,在硬件端口完整不?

Maxr:

回复 gaoyang9992006:

如果不重定向,那么虚拟的控制台窗口的输出信息是完整的。不过,由于仿真器速度太慢,不利于调试。

重定向后,即重新定义fputs后,SCI串口这个硬件窗口,能够输出printf第一个参数中的字符串部分,但后面的多参数(如%s,%d对应的参数)部分,被输出到虚拟的控制台窗口了。

gaoyang9992006:

回复 Maxr:

不是很清楚这一块的问题啊,如果不需要太复杂的,你可以直接按照自己的需求写个输出函数用。用系统带的那个他们考虑的全面,因此效率就低了。

赞(0)
未经允许不得转载:TI中文支持网 » 关于CCS 6.1 printf重定向后输出信息不完整的问题
分享到: 更多 (0)