在《STM32 Uart 接收变长数据》的结尾,我们觉得每次使用这样的形式来输出信息感觉好麻烦,也不方便调试。
HAL_UART_Transmit(huart, &RxLenHi, 1, 1000); // 发送长度高位
HAL_UART_Transmit(huart, &RxLenlo, 1, 1000); // 发送长度低位
HAL_UART_Transmit(huart, uart4Rx, uart4RxLength, 1000); // 发送接收到的数据
所以我们就想想办法,看可不可以像标准C语言一样,使用printf往控制台打印信息。
在这一篇,我们提供了三种方法。
方法1:简单粗暴,直接写三个函数,一个负责输出字符串,名myPrintfChar;一个负责输出十进制数,名myPrintfDec;一个输出十六进制数,名myPrintfHex;
void myPrintfChar(uint8_t* buf)
{
uint8_t * pDebBuf;
uint16_t debugLen = 0;
pDebBuf = debugBuffer;
if(buf == NULL)
return;
// Put string to debugBuffer;
while(1)
{
if(*buf=='