历史上的今天
返回首页

历史上的今天

今天是:2025年06月10日(星期二)

正在发生

2018年06月10日 | STM32 USART 输入输出C库函数重定向理解

2018-06-10 来源:eefocus

重定向:是指用户可以自己重写c的库函数,当连接器检查到用户编写了与C库函数相同名字的函数时,优先采用用户编写的函数,这样用户就可以实现对库的修改了。


为了实现重定向printf()函数,我们需要重写fputc()这个c标准库函数,因为printf()在c标准库函数中实质是一个宏,最终调用了fputc()这个函数。


例如 用户有一个I/O设备,如USART。本来库函数 fputc()是把字符输出到调试器控制窗口上去,但用户要把数据通过USART输出到串口助手上去,这样一来,用到的基于fputc()函数的printf()系列函数的输出都需要被重定向到USART端口上去。


所以要想使用USART功能,用户必须自己重定向fputc()函数。


推荐阅读

史海拾趣

Capax Technologies Inc公司的发展小趣事

Capax Technologies Inc的崛起始于一次技术突破。公司研发团队成功开发出一种新型半导体材料,显著提高了电子设备的性能和能效。这一创新成果迅速在行业内引起关注,Capax Technologies Inc因此获得了大量订单和投资。随着技术的不断迭代和优化,Capax Technologies Inc逐渐在电子行业中崭露头角,成为一家备受瞩目的创新型企业。

ELDECO公司的发展小趣事

在激烈的市场竞争中,ELDECO公司始终坚持质量至上的原则。公司建立了严格的质量管理体系和检测机制,确保每一台出厂的ELD产品都符合高质量标准。同时,公司还注重售后服务体系建设,为客户提供及时、专业的技术支持和解决方案。正是凭借过硬的产品质量和优质的售后服务,ELDECO公司的ELD产品赢得了客户的广泛认可和信赖。

Crystal Clear Technology公司的发展小趣事

随着公司业务的不断扩张和盈利能力的提升,Crystal Clear Technology逐渐吸引了资本市场的关注。公司通过发行股票和债券等方式筹集资金,为公司的研发、生产和市场拓展提供了强有力的资金支持。资本市场的助力使得Crystal Clear Technology能够更快地实现规模扩张和产业升级,成为电子行业的一颗璀璨明星。

以上五个故事虽然是根据一般情况和行业趋势虚构的,但它们反映了一个电子企业在发展过程中可能遇到的挑战和机遇,以及如何通过技术创新、战略合作、国际化布局、环保理念和资本市场支持等方式实现快速成长。当然,每个企业的发展历程都是独特的,Crystal Clear Technology公司的发展故事也必然有其独特之处。

启珑(CHIPLON)公司的发展小趣事

Crystal Clear Technology自创立之初,便专注于研发新型显示技术。面对市场上日益增长的高清显示需求,公司投入大量资源进行技术研发,成功推出了一款具有高清晰度和广视角的显示屏产品。这一创新产品迅速获得市场认可,为Crystal Clear Technology打开了新的销售渠道,并奠定了公司在行业内的技术领先地位。

申风(everanalog)公司的发展小趣事

申风(everanalog)公司于2013年在上海成立,由一群充满激情和梦想的电子工程师组成。创始人施嘉铭凭借其深厚的行业经验和前瞻性的视野,带领团队开始了集成电路设计的探索之旅。在初创阶段,公司面临着资金紧张、人才短缺等挑战,但团队凭借着坚定的信念和不懈的努力,逐渐在市场上站稳了脚跟。

Alan Industries Inc公司的发展小趣事

随着产品技术的不断提升,Alan Industries Inc.开始积极拓展市场。公司制定了详细的市场营销策略,通过线上线下的多渠道推广,成功将产品打入国内外市场。同时,公司还注重品牌建设,通过优质的产品和服务赢得了消费者的信任和口碑。随着品牌知名度的提升,公司的市场份额不断扩大,成为电子行业中的佼佼者。

问答坊 | AI 解惑

请用过磁珠、TVS等保护器件的大师们指导一下小弟..

最近趁着买芯片的时候顺便弄了一大堆磁珠,50欧,100欧和200欧的,还有1206贴片的,仍然是50,100,200欧,想用在现在的ARM7系统中,结果取值方面实在是没经验,举棋不定了...:L 我的ARM7系统用的是ADuC7026芯片,内部频率是靠32.768K的晶振PLL了 ...…

查看全部问答>

闸流管和双向可控硅应用的十条黄金原则

闸流管和双向可控硅应用的十条黄金原则…

查看全部问答>

wince 6.0 spi接口中断 如何 应用 调用

各位大哥,望给兄弟指点一下。 我现在使用WINCE6.0;  如何把这个改成中断方式测试啊?? 测试驱动如下: hDrv=CreateFile(L\"SPI1:\",GENERIC_READ | GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,0);// char datavalue[10]={0x00,0x01,0x0 ...…

查看全部问答>

关于UCLINUX的内核问题(当下载Bootloader 和ucLinux内核到目标板后系统就可以启动到LINUX的图形界面了吗)

当下载Bootloader 和ucLinux内核到目标板后系统就可以启动到LINUX的图形界面了吗…

查看全部问答>

2808编译时出现的ERROR请教

在build的时候出现这样的错误: >>   error: illegal relocation type 050002 found in section .debug_info, file             C:\\\\tidcs\\\\DMC\\\\c28\\\\v32x\\\\lib\\\\dmclib\\\\c ...…

查看全部问答>

电压互感器熔丝熔断的原因

摘要:论述了中性点不接地系统中电压互感器一次侧熔丝,熔断的各种原因和处理方法,重点阐明了安装在电压互感器一次绕组中性点的消谐电阻不能限制电压互感器入口电容冲击电流的原理。 关键词:雷击;不接地系统;电压互感器;消谐器:互感器:电流电 ...…

查看全部问答>

对Modelsim6.0真的没办法了

我用Quartus II编写代码,编译后,调用Modelsim6.0仿真,可就是不行。调用Modelsim6.0可以执行功能仿真(前仿真),可执行后仿真就不行了,老有错。只要添加.sdo文件一运行就过不了。真不知该咋办。。。。。。。我下了不少学习文件来看。。可还是解 ...…

查看全部问答>

DSP的归一化

 在DSP中如何对坐标数据进行归一化,有没有函数什么的呀 还有如何将DSP中的数据导出来 放在excel中…

查看全部问答>

msp430f149 串口?

我用串口调试助手调试  没动静啊 以下是程序 #include static char string1[8]; char i; char j = 0; void main( void ) {   WDTCTL = WDTPW + WDTHOLD;   P3SEL |= 0x30;      M ...…

查看全部问答>

STM32使用MDK在线调试的时候,可以通过USB传输数据吗

现在有一个USB转串口的程序,我用MDK在线调试,希望可以做到,在发送数据的循环中,可以执行一次发送一个数据,…

查看全部问答>