怎样通过Prinf函数打印数据到串口
学习STM32过程中,经常需要查看一些采集到的数据,串口作为大部分单片机都有的外设我们可以通过它,将我们采集的数据显示出来,之前编程中熟悉的莫过于printf了,下面就给出了用printf打印到串口的方案
此次的我们要实现的功能是通过Printf函数以一定的时间间隔,向串口打印变化的数据
串口配置在之前的教程中已经讲过,现在我们只需要两步就可以实现通过printf函数向串口打印变化的数据。
第一步: 包含Stdio.h文件到工程中
第二步: 在工程中添加用于支持printf函数的代码
在主函数中我们调用printf函数即可,
程序运行的结果
Keil C 的标准库stdio.h:
stdio.h:标准输入输出头文件 (C语言标准库),其默认输出设备是显示器,要实现在串口或LCD输出,必须重定义标准库函数里调用的与输出设备相关的函数.
printf函数在keil的底层:
在keil中的标准C库中,printf、scanf等输入输出数据流函数是通过fputc、fgetc来实现最底层操作的,所以我们只需要在我们的工程中重定义这两个函数的功能就可以实现printf、scanf等数据流函数的重映射。
半主机模式:
半主机是用于 ARM 目标的一种机制,可将来自应用程序代码的输入/输出请求传送至运行调试器的主机。例如,使用此机制可以启用 C 库中的函数,如 printf() 和 scanf(),来使用主机的屏幕和键盘,而不是在目标系统上配备屏幕和键盘。
重定义:
就是重新再一次的定义函数,使其拥有新的定义,然后完成新的功能的过程。
重定向:
MDK原本目标是PC机的显示器,然后由于重定向,修改了printf的底层函数(重定义),使printf打印到单片机的外设中,此次我们是打印到串口上。
|