RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

技巧|多串口輸出打印

玩轉(zhuǎn)單片機 ? 來源:玩轉(zhuǎn)單片機 ? 作者:玩轉(zhuǎn)單片機 ? 2022-12-05 11:30 ? 次閱讀

串口輸出是單片機基本的外設使用,也是必須基本的一項基本技能,為了使用輸出打印函數(shù),一般都會重定向串口輸出,但是一般都會指定串口,要是想多個串口都能使用輸出打印要怎么實現(xiàn)呢,這篇文章就來聊聊;

核心代碼如下:

#include "hal_printf.h"


#define USART_TXBUFF_SIZE   256                                 //定義串口發(fā)送緩沖區(qū)大小 256字節(jié)
__align(8) char usart_txBuff[USART_TXBUFF_SIZE];                //字節(jié)對齊緩沖區(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ù),有興趣的同學可以找度娘補補知識,把上面的代碼放到HAL層,再初始化硬件串口即可使用,遍歷發(fā)送那里需要根據(jù)實際硬件進行修改,多串口打印輸出可以提高調(diào)試效率;

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6034

    文章

    44553

    瀏覽量

    634437
  • 函數(shù)
    +關注

    關注

    3

    文章

    4326

    瀏覽量

    62558
  • 串口輸出
    +關注

    關注

    0

    文章

    16

    瀏覽量

    7484

原文標題:技巧|多串口輸出打印

文章出處:【微信號:玩轉(zhuǎn)單片機,微信公眾號:玩轉(zhuǎn)單片機】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關推薦

    STM32H5開發(fā)(5)----串口打印配置

    在使用STM32CUBEIDE開發(fā)STM32H5項目時,串口打印被證明是一項極其有益的調(diào)試工具,能夠在開發(fā)過程中實時輸出信息和調(diào)試數(shù)據(jù),起到了至關重要的作用。通過充分利用串口
    的頭像 發(fā)表于 12-01 15:04 ?976次閱讀
    STM32H5開發(fā)(5)----<b class='flag-5'>串口</b><b class='flag-5'>打印</b>配置

    如何利用串口輸出printf的打印信息

    PC機上,printf輸出到顯示設備,在嵌入式linux系統(tǒng),一般利用printf輸出調(diào)試信息,需要重定向到串口。以AT91RM9200為例,簡要說明如何利用串口
    發(fā)表于 11-04 07:10

    stm32實現(xiàn)串口打印輸出學習內(nèi)容

    學習目標:stm32實現(xiàn)串口打印輸出學習內(nèi)容:1、串口原理圖分析右上圖可以看出:我們采用USB轉(zhuǎn)串口的形式,進行pc與單片機之間的通信,其中我們運用的芯片為ch340c。2、實現(xiàn)
    發(fā)表于 12-09 06:42

    用textbrowser打印串口監(jiān)控輸出

    2021年10月在做一個項目是用到串口監(jiān)控輸出,用textbrowser打印,發(fā)現(xiàn)1、打印偶爾會發(fā)生亂碼2、打印在textbrowser上時
    發(fā)表于 01-18 07:47

    串口調(diào)試打印是怎樣支持文本顏色輸出

    串口調(diào)試打印輸出的顏色日志格式是怎樣的?串口調(diào)試打印是怎樣支持文本顏色輸出的?
    發(fā)表于 02-14 07:56

    PRINT指定輸出串口1的打印信息,如果想輸出其他串口0的信息,怎么修改?

    PRINT指定輸出串口1的打印信息,如果想輸出其他串口0的信息,怎么修改!
    發(fā)表于 08-09 07:32

    什么是串口通信?基于STM32的printf打印輸出

    平時我們進行c語言編程的時候會經(jīng)常用到printf函數(shù)進行打印輸出,來調(diào)試代碼??墒沁@個printf函數(shù)C庫已經(jīng)幫我們實現(xiàn)好了,通常只需要直接調(diào)用即可,但是如果在一個新的開發(fā)平臺,如果庫沒有幫我們實現(xiàn)好,比如STM32開發(fā)板,那么我們怎么實現(xiàn)printf打印輸出呢?
    發(fā)表于 06-22 09:08 ?1.4w次閱讀
    什么是<b class='flag-5'>串口</b>通信?基于STM32的printf<b class='flag-5'>打印輸出</b>

    使用MicroLIB+fputc的方式實現(xiàn)串口打印功能

    要實現(xiàn)fputc函數(shù)的原因是:printf函數(shù)依賴于fputc函數(shù),重新實現(xiàn)fputc內(nèi)部從串口發(fā)送數(shù)據(jù)即可間接地實現(xiàn)printf打印輸出數(shù)據(jù)到串口
    的頭像 發(fā)表于 08-05 10:52 ?4746次閱讀
    使用MicroLIB+fputc的方式實現(xiàn)<b class='flag-5'>串口</b><b class='flag-5'>打印</b>功能

    嵌入式開發(fā)putty串口打印亂碼

    目錄嵌入式開發(fā)putty串口打印亂碼編碼格式問題波特率設置錯誤嵌入式開發(fā)putty串口打印亂碼在使用putty連接串口
    發(fā)表于 11-02 18:21 ?12次下載
    嵌入式開發(fā)putty<b class='flag-5'>串口</b><b class='flag-5'>打印</b>亂碼

    可以實時打印串口信息的串口調(diào)試軟件

    可以實時打印串口信息的串口調(diào)試軟件
    發(fā)表于 11-23 18:17 ?15次下載

    stm32實現(xiàn)串口打印輸出

    學習目標:stm32實現(xiàn)串口打印輸出學習內(nèi)容:1、串口原理圖分析右上圖可以看出:我們采用USB轉(zhuǎn)串口的形式,進行pc與單片機之間的通信,其中我們運用的芯片為ch340c。2、實現(xiàn)
    發(fā)表于 11-26 13:51 ?52次下載
    stm32實現(xiàn)<b class='flag-5'>串口</b><b class='flag-5'>打印輸出</b>

    STM32 | 串口打印知多少?

    常規(guī)打印方法 在STM32的應用中,我們常常對printf進行重定向的方式來把打印信息printf到我們的串口助手。在...
    發(fā)表于 12-24 19:11 ?2次下載
    STM32 | <b class='flag-5'>串口</b><b class='flag-5'>打印</b>知多少?

    STM32串口打印輸出亂碼的解決辦法

    最近在試用uFUN開發(fā)板,下載配套的Demo程序,串口數(shù)據(jù)輸出正常,當使用另一個模板工程,調(diào)用串口printf調(diào)試功能時,輸出的卻是亂碼,最...
    發(fā)表于 01-26 18:29 ?2次下載
    STM32<b class='flag-5'>串口</b><b class='flag-5'>打印輸出</b>亂碼的解決辦法

    投稿 | 基于IAR搭建RA MCU 串口打印

    基于IAR搭建RA MCU 串口打印
    的頭像 發(fā)表于 11-04 10:40 ?1314次閱讀
    投稿 | 基于IAR搭建RA MCU <b class='flag-5'>串口</b><b class='flag-5'>打印</b>
    RM新时代网站-首页