MDK:Keil v5.38/STM32CubeMX
MCU:STM32G431CBUx
外设:串口USART1、2
使用多串口Printf,基于C语言中的函数可变参数,首先要包含头文件"stdarg.h"。
基于LL库,编写多串口打印函数:
/************************************************ 函数名称 :USART_Printf 功 能 :多串口Printf函数 参 数 : 返 回 值 : *************************************************/ void USART_Printf(USART_TypeDef *USARTx,char* fmt, ...) { uint16_t i=0; char usart_sendbuff[256]; memset(usart_sendbuff,0,256); va_list ap; va_start(ap,fmt); vsprintf(usart_sendbuff,fmt,ap); va_end(ap); while(usart_sendbuff[i]) { LL_USART_TransmitData8(USARTx,usart_sendbuff[i++]); while(!LL_USART_IsActiveFlag_TXE(USARTx));//需要等待发送完成 } }
编写测试函数:
USART_Printf(USART1,"Temperature:%6.4f\r\n",imu_measurements.Temperature); USART_Printf(USART2,"Acc_X:%6.4f \r\n",imu_measurements.Uncomp_Acc_X);
实测现象
标签:sendbuff,USART,usart,--,LL,串口,Printf From: https://www.cnblogs.com/xujingxing/p/18014115