0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

技巧|多串口输出打印

玩转单片机 来源:玩转单片机 作者:玩转单片机 2022-12-05 11:30 次阅读

串口输出是单片机基本的外设使用,也是必须基本的一项基本技能,为了使用输出打印函数,一般都会重定向串口输出,但是一般都会指定串口,要是想多个串口都能使用输出打印要怎么实现呢,这篇文章就来聊聊;

核心代码如下:

#include "hal_printf.h"


#define USART_TXBUFF_SIZE   256                                 //定义串口发送缓冲区大小 256字节
__align(8) char usart_txBuff[USART_TXBUFF_SIZE];                //字节对齐缓冲区


// 自定义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
");

核心就是剩余参数和vsprintf函数,有兴趣的同学可以找度娘补补知识,把上面的代码放到HAL层,再初始化硬件串口即可使用,遍历发送那里需要根据实际硬件进行修改,多串口打印输出可以提高调试效率;

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6035

    文章

    44553

    浏览量

    634736
  • 函数
    +关注

    关注

    3

    文章

    4329

    浏览量

    62576
  • 串口输出
    +关注

    关注

    0

    文章

    16

    浏览量

    7487

原文标题:技巧|多串口输出打印

文章出处:【微信号:玩转单片机,微信公众号:玩转单片机】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    STM32H5开发(5)----串口打印配置

    在使用STM32CUBEIDE开发STM32H5项目时,串口打印被证明是一项极其有益的调试工具,能够在开发过程中实时输出信息和调试数据,起到了至关重要的作用。通过充分利用串口
    的头像 发表于 12-01 15:04 985次阅读
    STM32H5开发(5)----<b class='flag-5'>串口</b><b class='flag-5'>打印</b>配置

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

    PC机上,printf输出到显示设备,在嵌入式linux系统,一般利用printf输出调试信息,需要重定向到串口。以AT91RM9200为例,简要说明如何利用串口
    发表于 11-04 07:10

    stm32实现串口打印输出学习内容

    学习目标:stm32实现串口打印输出学习内容:1、串口原理图分析右上图可以看出:我们采用USB转串口的形式,进行pc与单片机之间的通信,其中我们运用的芯片为ch340c。2、实现
    发表于 12-09 06:42

    用textbrowser打印串口监控输出

    2021年10月在做一个项目是用到串口监控输出,用textbrowser打印,发现1、打印偶尔会发生乱码2、打印在textbrowser上时
    发表于 01-18 07:47

    串口调试打印是怎样支持文本颜色输出

    串口调试打印输出的颜色日志格式是怎样的?串口调试打印是怎样支持文本颜色输出的?
    发表于 02-14 07:56

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

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

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

    平时我们进行c语言编程的时候会经常用到printf函数进行打印输出,来调试代码。可是这个printf函数C库已经帮我们实现好了,通常只需要直接调用即可,但是如果在一个新的开发平台,如果库没有帮我们实现好,比如STM32开发板,那么我们怎么实现printf打印输出呢?
    发表于 06-22 09:08 1.4w次阅读
    什么是<b class='flag-5'>串口</b>通信?基于STM32的printf<b class='flag-5'>打印输出</b>

    使用MicroLIB+fputc的方式实现串口打印功能

    要实现fputc函数的原因是:printf函数依赖于fputc函数,重新实现fputc内部从串口发送数据即可间接地实现printf打印输出数据到串口
    的头像 发表于 08-05 10:52 4753次阅读
    使用MicroLIB+fputc的方式实现<b class='flag-5'>串口</b><b class='flag-5'>打印</b>功能

    嵌入式开发putty串口打印乱码

    目录嵌入式开发putty串口打印乱码编码格式问题波特率设置错误嵌入式开发putty串口打印乱码在使用putty连接串口
    发表于 11-02 18:21 12次下载
    嵌入式开发putty<b class='flag-5'>串口</b><b class='flag-5'>打印</b>乱码

    可以实时打印串口信息的串口调试软件

    可以实时打印串口信息的串口调试软件
    发表于 11-23 18:17 15次下载

    stm32实现串口打印输出

    学习目标:stm32实现串口打印输出学习内容:1、串口原理图分析右上图可以看出:我们采用USB转串口的形式,进行pc与单片机之间的通信,其中我们运用的芯片为ch340c。2、实现
    发表于 11-26 13:51 52次下载
    stm32实现<b class='flag-5'>串口</b><b class='flag-5'>打印输出</b>

    STM32 | 串口打印知多少?

    常规打印方法 在STM32的应用中,我们常常对printf进行重定向的方式来把打印信息printf到我们的串口助手。在...
    发表于 12-24 19:11 2次下载
    STM32 | <b class='flag-5'>串口</b><b class='flag-5'>打印</b>知多少?

    STM32串口打印输出乱码的解决办法

    最近在试用uFUN开发板,下载配套的Demo程序,串口数据输出正常,当使用另一个模板工程,调用串口printf调试功能时,输出的却是乱码,最...
    发表于 01-26 18:29 2次下载
    STM32<b class='flag-5'>串口</b><b class='flag-5'>打印输出</b>乱码的解决办法

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

    基于IAR搭建RA MCU 串口打印
    的头像 发表于 11-04 10:40 1329次阅读
    投稿 | 基于IAR搭建RA MCU <b class='flag-5'>串口</b><b class='flag-5'>打印</b>