STM32CubeIDE printf打印函数使用

1、在主函数抬头用户代码区添加宏定义以及函数声明:
#define CMD_BUFFER_LEN 255
void USART_printf (UART_HandleTypeDef *huart,char *fmt, …);

2、在主函数的用户代码区添加如下代码:
void USART_printf (UART_HandleTypeDef *huart,char *fmt, …)
{
char buffer[CMD_BUFFER_LEN+1];
uint8_t i = 0;
va_list arg_ptr;
va_start(arg_ptr, fmt);
vsnprintf(buffer, CMD_BUFFER_LEN+1, fmt, arg_ptr);
while ((i < CMD_BUFFER_LEN) && buffer[i])
{
HAL_UART_Transmit(huart,&buffer[i++],1,0xFFFFFFFFU);
}
va_end(arg_ptr);
}
该函数的几个参数:
2.1 串口指针:可以是串口1或者2
2.2 显示的char字符串
2.3 要显示的变量

3、主函数while循环使用打印函数,格式如下:
USART_printf(&huart1,"%s is:%d \r\n",“ADC_V_CH4_int voltage”,ADC_V_CH4_int);

以下是ADC 4~7通道采集的电压通过串口1打印的信息:
在这里插入图片描述
貌似首次编译有两个警告,基本不影响打印信息的观察


版权声明:本文为weixin_41623723原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。