入门C语言时,都是在计算机上编程,因为库函数已经把字符输出定向到显示器(其实叫控制台)了。所以会让初学者误解printf输出就是打印到显示器的。
实际上可以输出到任务终端:打印机、传真机等等。
printf函数输出到哪儿,是靠函数
int fputc(int ch FILE *f)
来实现的。不同的库环境可能不一样,也有可能是__io_putchar
如果没有fputc函数,执行printf可能会死机。
嵌入式上一般我们用串口输出信息,所以通常会重写fputc函数,向串口进行输出。比如:
int fputc(int ch FILE *f)
{
LL_USART_ClearFlag_TC(USART2);
LL_USART_TransmitData8 (USART2ch);
while(0 == LL_USART_IsActiveFlag_TC(USART2)) {};
return ch;
}
我把它的输出定向到串口2。