STM32:如何写出多串口共用printf函数语句?

发布者:TranquilOasis最新更新时间:2024-05-14 来源: elecfans关键字:STM32 手机看文章 扫描二维码
随时随地手机看文章

(1)问题描述: 多串口共用printf函数,百度到的资料大部分是建议重新写一个xx_printf(format, …)。但是使用起来还是不方便,就此问题而言加上一个判断语句便可解决。

(2)解决方法: printf函数最后调用的是int fputc(int ch, FILE *f),那么重新改写此函数便可。

(3)代码

//标志量定义

int USART_PRINTF_FLAG = 2;//默认串口2

//改写

fputcint fputc(int ch, FILE *f)

{

if (USART_PRINTF_FLAG == 2)

{

while(USART_GetFlagStatus(USART2,USART_FLAG_TC)==RESET);

USART_SendData(USART2,(uint8_t)ch);

}

else

{

while(USART_GetFlagStatus(USART1,USART_FLAG_TC)==RESET);

USART_SendData(USART1,(uint8_t)ch);

}

return ch;

}

//中断处理

void USART1_IRQHandler(void)

{

USART_PRINTF_FLAG = 1;

//your coding here.。.

}

void USART2_IRQHandler(void)

{

USART_PRINTF_FLAG = 2;

//your coding here.。.

}

STM32:如何写出多串口共用printf函数语句?


关键字:STM32 引用地址:STM32:如何写出多串口共用printf函数语句?

上一篇:浅析STM32的五大嵌入式操作系统的特点及不足
下一篇:一种经典的STM32 ADC多通道转换详细解析

小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved