Edesigner. 发表于 2020-6-3 16:59:14

关于用iar for avr实现printf功能,如何配置?

IAR版本5.11B
keil for arm的方法是钩选Use MicroLIB,重新定向fputc函数。在fputc里调用串口发送即可。但iar里好像不行。

hpdell 发表于 2020-6-18 17:30:35

单独写个 printf 就可以了

u8 buf_str;// 大小根据实际使用来定,或者根据你的单片机总的 ram 来定即可

voidApp_Printf(char *format, ...)
{
        uint32_t _i, _strCnt;
        va_list   v_args;

        va_start(v_args, format);
        (void)vsnprintf((char       *)&buf_str,
                                                                       (size_t      ) sizeof(buf_str),
                                                                       (char const *) format,
                                                                                v_args);
        va_end(v_args);

        _strCnt =         strlen(buf_str);       
                                                                       
#if0

        for(_i=0; _i<_strCnt; _i++)       
        {
                USART1->TDR = (int)buf_str;

                /* 等待发送结束 */
                while((USART1->ISR & USART_ISR_TC) == 0)
                {}
        }       

}

// ----------------

App_Printf("我们一起还,%d\r\n", 253);

页: [1]
查看完整版本: 关于用iar for avr实现printf功能,如何配置?