串口輸出是單片機(jī)基本的外設(shè)使用,也是必須基本的一項(xiàng)基本技能,為了使用輸出打印函數(shù),一般都會(huì)重定向串口輸出,但是一般都會(huì)指定串口,要是想多個(gè)串口都能使用輸出打印要怎么實(shí)現(xiàn)呢,這篇文章就來(lái)聊聊;
核心代碼如下:
#include "hal_printf.h" #define USART_TXBUFF_SIZE 256 //定義串口發(fā)送緩沖區(qū)大小 256字節(jié) __align(8) char usart_txBuff[USART_TXBUFF_SIZE]; //字節(jié)對(duì)齊緩沖區(qū) // 自定義printf() void USART_printf(uint32_t usart_periph, char *fmt,...) { uint32_t i,length; va_list ap; va_start(ap,fmt); vsprintf(usart_txBuff,fmt,ap); va_end(ap); length=strlen((const char*)usart_txBuff); for(i=0;i
頭文件如下:
#ifndef __HAL_PRINTF_H__ #define __HAL_PRINTF_H__ #include "gd32f10x.h" #include "stdio.h" #include "stdarg.h" #include "string.h" void USART_printf(uint32_t usart_periph, char *fmt,...); #endif/*__HAL_USART_H__*/
使用方法如下:
USART_printf(USART0, "test "); USART_printf(USART2,"test ");
核心就是剩余參數(shù)和vsprintf函數(shù),有興趣的同學(xué)可以找度娘補(bǔ)補(bǔ)知識(shí),把上面的代碼放到HAL層,再初始化硬件串口即可使用,遍歷發(fā)送那里需要根據(jù)實(shí)際硬件進(jìn)行修改,多串口打印輸出可以提高調(diào)試效率;
審核編輯:湯梓紅
-
單片機(jī)
+關(guān)注
關(guān)注
6037文章
44561瀏覽量
635584 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4332瀏覽量
62653 -
串口輸出
+關(guān)注
關(guān)注
0文章
16瀏覽量
7493
原文標(biāo)題:技巧|多串口輸出打印
文章出處:【微信號(hào):玩轉(zhuǎn)單片機(jī),微信公眾號(hào):玩轉(zhuǎn)單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論