This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

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

Other Parts Discussed in Thread: TMS570LS3137

        单片机是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串口输出?

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

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

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

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