串口输出是单片机基本的外设使用,也是必须基本的一项基本技能,为了使用输出打印函数,一般都会重定向串口输出,但是一般都会指定串口,要是想多个串口都能使用输出打印要怎么实现呢,这篇文章就来聊聊;
核心代码如下:
#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层,再初始化硬件串口即可使用,遍历发送那里需要根据实际硬件进行修改,多串口打印输出可以提高调试效率;
审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
单片机
+关注
关注
6001文章
43973浏览量
620836 -
函数
+关注
关注
3文章
3868浏览量
61309 -
串口输出
+关注
关注
0文章
16浏览量
7383
原文标题:技巧|多串口输出打印
文章出处:【微信号:玩转单片机,微信公众号:玩转单片机】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
STM32H5开发(5)----串口打印配置
在使用STM32CUBEIDE开发STM32H5项目时,串口打印被证明是一项极其有益的调试工具,能够在开发过程中实时输出信息和调试数据,起到了至关重要的作用。通过充分利用串口
STM32例程之串口打印输出(源码下载)
STM32串口打印输出,使用USART1输出数据,用查询的方式读取从串口接收到的数据并打印输出输入的数据。主函数:/*** @brief
发表于 01-09 15:21
重定向printf到串口打印输出
嵌入式的开发离不开 log 的打印,我们常常使用的是重定向printf到串口打印输出,但是会对系统的实时性产生一定的影响,RTT技术可以在一定程度解决这个问题。
发表于 08-24 07:11
如何利用串口输出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
stm32实现串口打印输出
学习目标:stm32实现串口打印输出学习内容:1、串口原理图分析右上图可以看出:我们采用USB转串口的形式,进行pc与单片机之间的通信,其中我们运用的芯片为ch340c。2、实现
发表于 11-26 13:51
•52次下载
STM32 | 串口打印知多少?
常规打印方法 在STM32的应用中,我们常常对printf进行重定向的方式来把打印信息printf到我们的串口助手。在...
发表于 12-24 19:11
•2次下载
STM32CUBEMX(6)--移植雅特力AT32F403AVGT7,双串口通过DMA方式接收不定长数据
本篇文章主要介绍如何使用STM32CubeMX移植到雅特力AT32F403AVGT7,并通过双串口输出打印。
评论