最近遇到需要MCU输出数字的问题,而STM32的串口输出的是字符型,最先想到的方法是将整型数据转换为字符型输出,C库函数中提供了相关的函数
参考:http://www.cnblogs.com/processakai/archive/2011/06/24/2089348.html
http://c.biancheng.net/cpp/html/1573.html
C语言中使用printf()函数输出是非常方便功能非常强大的,如果能将printf()函数使用到串口上,能实现非常多的强大输出功能,极大方便我们使用串口输出功能。
printf()函数是输出到显示器,而MCU是没有显示器的,要使他输出到串口,需要重定向该函数
printf()函数中调用fputc()函数,只要对该函数进行重定向,即可实现功能
//使用printf()函数要添加头文件“stdio.h"
#include "stdio.h"
//printf()函数重定向到USART2
int fputc(int ch,FILE *f)
{
//ch送给USART
USART_SendData(USART2, ch);
//等待发送完毕
while(!USART_GetFlagStatus(USART2, USART_FLAG_TC)) ;
//返回ch
return ch;
}
库函数中有宏定义
#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
所以也可以写为
PUTCHAR_PROTOTYPE