您的位置:首页 > 其它

IAR瑞萨单片机开发加入printf调试函数

2015-08-19 10:21 169 查看
IAR开发环境,没有printf函数,自己百度加入了一个(http://www.cnblogs.com/codecamel/p/4686437.html),但是还是有一些问题,特别是打印多个变量时,只能够打印字符串时比较稳定,原因是因为va_arg()给了错误的返回值,故只能找寻其他的方法,今天测试了一下,新的办法步骤如下

1.关键之处,否则会出现PUTCHAR函数未定义现象。

右键点击工程选择option->GeneralOption->ibraryconfiguration中library改为full,且GeneralOption->libraryoption->Printfformatter选项中选择full2

2.main.c中加入,其中使用的是串口1,注意如果提示FILE未定义,请在头文件最顶层添加#include<stdio.h>

/*---------------------------Privatefunctionprototypes-----------------------------------------------*/

#ifdef__GNUC__
/*WithGCC/RAISONANCE,smallprintf(optionLDLinker->Libraries->Smallprintf
setto'Yes')calls__io_putchar()*/
#definePUTCHAR_PROTOTYPEint__io_putchar(intch)
#else
#definePUTCHAR_PROTOTYPEintfputc(intch,FILE*f)
#endif/*__GNUC__*/

/**
*@briefRetargetstheClibraryprintffunctiontotheUSART.
*@paramNone
*@retvalNone
*/
PUTCHAR_PROTOTYPE
{
/*Placeyourimplementationoffputchere*/
/*e.g.writeacharactertotheUSART*/
USART_SendData(EVAL_COM1,(uint8_t)ch);
/*Loopuntiltheendoftransmission*/
while(USART_GetFlagStatus(EVAL_COM1,USART_FLAG_TC)==RESET);
returnch;
}


printf函数打印字符串,遇到\0时才结束。


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: