[原创] 【ATmega4809 Curiosity Nano测评】使用printf函数

dcexpert   2019-10-28 23:39 楼主

在C语言中,printf函数可以用来打印调试信息,非常方便。在AVR中,可以非常容易的将串口映射到stdout上,从而实现printf功能。

 

在MCC中,使用方法如下:

 

在MCC中创建串口时,将Printf support选中,就可以使用printf功能,通过printf打印的内容,就会通过UART3输出。

 

image.png




此内容由EEWORLD论坛网友dcexpert原创,如需转载或用于商业用途需征得作者同意并注明出处

回复评论 (2)

如果打开文件usart3.c,就可以看到下面新增的代码,它就是使能printf的关键:

 

#if defined(__GNUC__)

int USART3_printCHAR(char character, FILE *stream)
{
    USART3_Write(character);
    return 0;
}

FILE USART3_stream = FDEV_SETUP_STREAM(USART3_printCHAR, NULL, _FDEV_SETUP_WRITE);

#elif defined(__ICCAVR__)

int putchar(int outChar)
{
    USART0_Write(outChar);
    return outChar;
}
#endif

 

#if defined(__GNUC__)
    stdout = &USART3_stream;
#endif

 

点赞  2019-10-28 23:43

经测试,现在只能支持printf,不支持scanf函数,有点遗憾。

点赞  2019-10-29 23:10
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复