ARM的串口输出问题

john86   2007-8-4 18:06 楼主
问个困扰了我很久的问题: Uart_Printf这个函数 我看了它的定义。但还是不很懂。而且用它串口输出的话,显示的是乱码。过程是这样的:我选取了某公司写的测试程序中的3个文件:RTC.C 、44BINIT.S和44blib.c。用这3个文件做了工程。(当然了,我还添加了Main函数)结果串口输出的就是乱码了。是不是我遗漏了什么?不然,怎么会是乱码呢?调此公司的这个测试程序,串口输出都是正常的啊

void Uart_Printf(char *fmt,...)
{
    va_list ap;
    char string[256];

    va_start(ap,fmt);
    vsprintf(string,fmt,ap);
    Uart_SendString(string);
    va_end(ap);
}
函数中的va_start是什么东东?我怎么从来没见过?

回复评论 (3)

The ANSI C standard macros, defined in STDARG.H

va_start sets arg_ptr to the first optional argument in the list of arguments passed to the function. The argument arg_ptr must have va_list type. The argument prev_param is the name of the required parameter immediately preceding the first optional argument in the argument list. If prev_param is declared with the register storage class, the macro’s behavior is undefined. va_start must be used before va_arg is used for the first time.
点赞  2007-8-6 17:16
先查MSDN,再问问题
点赞  2007-8-12 10:34
串口发送是要考虑波特率的,不光是程序
点赞  2007-8-12 17:41
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复