单片机自定义串口打印程序
#include <stdarg.h>
#include <stdio.h>
void printf(const char* format, …)
{
uint8_t buf[256]; //申请打印内容缓存,不得超过256字节
uint32_t len = 0; //实际打印的字符串大小
uint32_t index = 0;
va_list ap;
va_start(ap, format);
len = vsnprintf((char*)buf, 256, format, ap); //将需要打印的数据,转化为字符串,保存在buf中。
if(len > 0) //逐个打印字符
{
while(len--)
{
USART_SendData(USART1, buf[index]);
index++;
while(USART_GetFlagStatus(USART1,USART_FLAG_TC )==RESET);
}
}
va_end(ap);
}