历史上的今天
返回首页

历史上的今天

今天是:2025年01月17日(星期五)

正在发生

2019年01月17日 | STM32多串口共用printf打印串口数据

2019-01-17 来源:eefocus

(1)问题描述: 

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

(2)解决方法: 

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


(3)代码:


//标志量定义

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


//改写fputc

int 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...

}


推荐阅读

史海拾趣

上海晶岳(AFSEMI)公司的发展小趣事

在半导体行业中,供应链的稳定性和可靠性对于企业的生存和发展至关重要。晶岳电子深知这一点,因此一直致力于与流片及封装厂建立长期稳定的合作关系。公司的晶圆流片合作伙伴包括大陆的CSMC、ASMC,台湾的世界先进等公司;封装的合作伙伴则包括长电科技、上海芯哲等大陆上市企业。通过与这些合作伙伴的紧密合作,晶岳电子确保了产品质量的稳定性和交货期的可靠性,为公司的持续发展提供了有力保障。

这五个故事只是上海晶岳(AFSEMI)公司发展历程中的一部分,但它们充分展示了晶岳电子在电子行业中的崛起和成长。凭借对技术的执着追求和对市场的敏锐洞察,晶岳电子在激烈的市场竞争中脱颖而出,成为了行业内的一支重要力量。

FORMOSA公司的发展小趣事

在半导体技术日新月异的时代,一家名为“FORMOSA半导体科技”的公司凭借其在先进制程技术上的突破,迅速在行业内崭露头角。该公司专注于研发和生产高性能的处理器和存储器芯片,为智能手机、数据中心等高端应用提供核心动力。通过持续的研发投入和与全球顶尖科技公司的合作,FORMOSA半导体科技成功打破了多项技术壁垒,其产品在市场上赢得了广泛赞誉。公司还积极响应绿色环保的号召,推出了一系列低功耗、高效率的半导体解决方案,为可持续发展贡献力量。

EnerSys公司的发展小趣事

进入21世纪后,EnerSys加快了其收购与整合的步伐。2000年底,EnerSys收购了Yuasa Corporation(Japan)在北美和南美的储能和动力电池业务。随后,公司又陆续收购了Energy Storage Group of Invensys plc.和FIAMM, S.p.A.的动力电池业务。这些收购不仅扩大了EnerSys的市场份额,还增强了其在专业镍基电池、锂电池、铅酸电池和工业电池领域的技术实力。

3M公司的发展小趣事

进入21世纪后,EnerSys加快了其收购与整合的步伐。2000年底,EnerSys收购了Yuasa Corporation(Japan)在北美和南美的储能和动力电池业务。随后,公司又陆续收购了Energy Storage Group of Invensys plc.和FIAMM, S.p.A.的动力电池业务。这些收购不仅扩大了EnerSys的市场份额,还增强了其在专业镍基电池、锂电池、铅酸电池和工业电池领域的技术实力。

AMICC [AMIC TECHNOLOGY]公司的发展小趣事

在电子行业发展日新月异的背景下,AMICC始终坚持技术创新。公司投入大量研发资源,成功开发出一系列具有自主知识产权的新型半导体产品。这些产品不仅提高了性能,还降低了成本,为公司在市场竞争中赢得了优势。同时,AMICC还积极与国内外高校和研究机构合作,推动产学研深度融合,为公司的持续发展注入新的活力。

Bipolar Integrated Technology Inc公司的发展小趣事

随着技术的成熟,BIT开始积极寻找市场机会。他们与多家电子设备制造商建立了合作关系,将自家的集成电路应用于各种电子产品中。通过与这些合作伙伴的紧密合作,BIT的产品逐渐在市场上占据了一席之地,公司规模也逐渐扩大。

问答坊 | AI 解惑

初学驱动,请教一个简单的PnP的概念问题

WDF下在,在即插即用的设置结构WDF_PNPPOWER_EVENT_CALLBACKS中有一个属性:PNP_WDF_DEVICE_PREPARE_HARDWARE   EvtDevicePrepareHardware; 这个属性指定了在设备插上机器时,操作系统要调用的函数。 我的理解: 第一步必须要先安装驱 ...…

查看全部问答>

s3c2410模拟器的音频问题

我有一个s3c2410下简单的录音程序,带有播放和录音的功能,录音功能我如何调试?怎么能让那个模拟器默认到我的耳麦接的是模拟器而不是我的电脑呢?我该怎么做呢?…

查看全部问答>

GSM/GPRS纯数据无线通信模块(M590)

http://image.cn.made-in-china.com/2f0j01GMjaCuvJrrcn/GSM/GPRS%E7%BA%AF%E6%95%B0%E6%8D%AE%E6%97%A0%E7%BA%BF%E9%80%9A%E4%BF%A1%E6%A8%A1%E5%9D%97%EF%BC%88M590%EF%BC%89.jpg 产品简介   有方M590 GPRS无线通信模块采用Infineon Tech7880 ...…

查看全部问答>

交叉编译QT应用程序报错

/usr/local/arm/3.3.2/lib/gcc-lib/arm-linux/3.3.2/../../../../arm-linux/bin/ld:cannot find –lqte Collect2 :ld returned exit status 在lib 下有库libqte.so.2.3.7: ELF 32-bit LSB shared object, ARM, version 1 (ARM), not stripped l ...…

查看全部问答>

arm中断系统的疑惑

arm中断疑惑: 当中断产生时,通过中断向量表        b   ResetHandler       b   HandlerUndef    ;handler for Undefined mode     b   Handler ...…

查看全部问答>

用89S52单片机做频率计遇到的问题

我现在要用单片机测频率10HZ-1.1GHZ,分2档,分频后送入单片机计数,再1602LCD显示,现在我要用C语言写一个程序,谁帮我一下啊下面是我写的程序,大家帮我修改下啊,错误很多,大家帮我修该修改啊 本程序是用来测频率的,外部频率送入单片机,再在 ...…

查看全部问答>

帮忙啦!谁有tornado2.2.1的补丁

谁有这两个补丁 make3_80.gvk_patches make3_80.tor2_2.new_dependency_rules 需要用。 谢谢! 原文地址:http://www.dre.vanderbilt.edu/~schmidt/DOC_ROOT/ACE/ACE-INSTALL.html#VxWorks/NT NOTE:The make (version 3.74) that is provide ...…

查看全部问答>

lpc1343的开发板哪里能买到?

就是nxp网站上的那种,有卖的吗?现在做项目要用,已经错过申请板子的时间了 哪位有不用的话可以考虑转给我吗?价钱可以商量…

查看全部问答>

ADC0832程序

时序图中第十一个时钟下降沿后输出一个相反字节,第十八个脉冲下降沿完成DATA0输出,这是完成一次AD…

查看全部问答>

基于单片机的带有SD卡的MP3

想做一个基于单片机的带有SD卡的MP3,希望高手能够给些资料,谢谢!面临毕业,希望能够毕业前做些实事!…

查看全部问答>