历史上的今天
返回首页

历史上的今天

今天是:2025年02月28日(星期五)

正在发生

2020年02月28日 | 单片机系统重写printf函数

2020-02-28 来源:eefocus

//将stdio.h头文件中的printf函数注释掉不然会冲突

//stdio.h头文件还是要包含的里面有va_list的定义

//使用vsprintf将要打印的数据赋给字符串

//使用字符串发送函数发送字符串

 

//不要把这个数组放在printf函数里面,一方面会在栈分配内存上耗费时间

//另一方面也是最主要的如果栈空间不够了还要分配100个字节那就会导致

//堆栈溢出,CC2530使用256字节的IDATA的一部分作为栈空间,我设置成了0xC0

//也就是192字节,在函数调用层次很深的时候在调用printf函数就会很容易

//导致堆栈溢出,出现莫名其妙的问题。

char string[100];

void printf(char *fmt,...)

{

    va_list ap;                //typedef char *va_list; va_list是char型的指针

    va_start(ap,fmt);        //这个函数的功能是,找到第一个可变形参的地址,并把地址赋给ap

    vsprintf(string,fmt,ap); //其实这个函数才是核心函数,没研究。。。

    UartSendString(string);    //这个函数就是发送字符串函数,通过上一个函数,就把该提取的东西都提取了

    va_end(ap);                //结束函数

}

其实使用sprintf函数就可以实现printf功能了,例如:

sprintf(string,fmt,...);

UartSendString(string);

推荐阅读

史海拾趣

中环(Central)公司的发展小趣事

随着公司业务的不断拓展,中环在保持主业优势的同时,也积极开展多元化发展。2014年,公司开始开展光伏电站开发业务,进一步延伸了产业链。同时,公司还成立了东方环晟,开拓了组件业务。这些举措不仅为公司带来了新的增长点,也增强了其综合竞争力。

Antenna Factor公司的发展小趣事

Antenna Factor公司始终注重产品质量和客户体验。他们建立了严格的质量管理体系,从原材料采购到产品生产的每一个环节都进行严格的把控。同时,公司还加强了对售后服务的管理和改进,确保客户在使用过程中能够得到及时、有效的支持。这些举措使得Antenna Factor公司的产品质量和品牌形象得到了显著提升。

ABI Electronics公司的发展小趣事

随着业务的不断发展和产品的不断升级,ABI Electronics公司的品牌影响力也逐渐提升。其产品在市场上获得了良好的口碑和声誉,成为了电子行业内的知名品牌。同时,ABI还积极参与行业内的交流和合作,为行业的发展做出了积极的贡献,进一步提升了其在行业内的地位和影响力。

这五个故事展示了ABI Electronics公司在电子行业里的发展历程,从电路板测试技术的突破,到集成电路测试技术的创新,再到全球市场布局和合作伙伴关系的建立,以及研发实力的持续增强和品牌影响力的提升,都体现了ABI Electronics公司不断进取、不断创新的精神。

Aromat Corp公司的发展小趣事

在快速发展的过程中,Aromat Corp始终关注社会责任。公司积极参与公益活动,支持教育事业和环保事业。同时,Aromat Corp还注重员工的成长与发展,提供良好的工作环境和福利待遇,激发员工的创新精神和团队合作精神。这些举措不仅提升了公司的社会形象,也为公司的可持续发展奠定了坚实的基础。

这五个故事只是虚构的Aromat Corp公司的发展概况,并不代表任何真实公司的实际情况。每个公司的发展历程都是独一无二的,受到市场环境、技术趋势、管理决策等多种因素的影响。

捷茂微(GATEMODE)公司的发展小趣事

在快速发展的过程中,Aromat Corp始终关注社会责任。公司积极参与公益活动,支持教育事业和环保事业。同时,Aromat Corp还注重员工的成长与发展,提供良好的工作环境和福利待遇,激发员工的创新精神和团队合作精神。这些举措不仅提升了公司的社会形象,也为公司的可持续发展奠定了坚实的基础。

这五个故事只是虚构的Aromat Corp公司的发展概况,并不代表任何真实公司的实际情况。每个公司的发展历程都是独一无二的,受到市场环境、技术趋势、管理决策等多种因素的影响。

百事通科技(BUDDIES)公司的发展小趣事

为了降低成本、提高效率,百事通科技(BUDDIES)开始着手进行产业链整合。公司与上下游企业建立了紧密的合作关系,通过优化供应链、共享资源等方式,实现了产业链的协同发展。这一举措不仅提高了公司的运营效率,还增强了公司的市场竞争力。

问答坊 | AI 解惑

电源模块N+k工作方式对电源系统可靠性的影响

电源模块N+k工作方式对电源系统可靠性的影响   影响高频开关电源系统可靠性的因素主要有电源模块的可靠性,高频开关电源模块的热备份数量对可靠性的改善等。由于电源系统的交直流配电使用的元、器件较少,分析时可认为其可靠度RP(t)=1。 1高频开 ...…

查看全部问答>

5口以太网交换机原理图

哥们今天刚按照实物反推出的,主芯片为DM9081的5口以太网交换机原理图.PROTEL99SE格式. [ 本帖最后由 西门 于 2009-5-12 18:31 编辑 ]…

查看全部问答>

欢迎测试测量新版主: gy8u ~~~~~

gy8u一上来就希望:大家多交流技术的话题, 非常欢迎gy8u版主,非常欢迎大家讨论:比如数据采集…… gy8u版主其人:主要做的工作是做汽车电子的测试,以及整车的测试………

查看全部问答>

问下现在TI电机控制芯片比较稳定的较新的是哪个型号?

问下现在TI电机控制芯片比较稳定的较新的是哪个型号?现在好像TI的芯片缺货.…

查看全部问答>

Platform Builder 4.2中自带的S3C2410BSP可以用于S3C2440么?

Platform Builder 4.2中自带的S3C2410 BSP可以用于S3C2440么? 或者哪里有下载用于S3C2440 BSP for PB4.2的?…

查看全部问答>

急求大侠帮忙!!!!

晶振频率11.0592MHZ 源程序如下: 问题是 利用串口调试软件运行时,反复输入U后经采样转换数据不一致,即模拟信号转成数字量的值 跳变太大。。。请教专家!!! CS        BIT        P1.1   &n ...…

查看全部问答>

关心STM32的ADC精度问题.

STM32具有12BIT ADC 确实很好,很强大!但也担心它的精度问题,听闻有3BIT线形误差。下面是AT91SAM7S64关于ADC误差的说明。…

查看全部问答>

学习之MSP430中断

中断是MSP430微处理器的一大特色,有效地利用中断可以简化程序和提高执行效率。 MS430 的中断比较多,几乎每个外围模块都能够产生中断。MSP430 可以在没有事件发生时进入低功耗状态,事件发生时,通过中断唤醒CPU ,事件处理完毕后,CPU 再次进 ...…

查看全部问答>

请教 AD633 输出波形如何变成直流平均值

大家好: 我用 AD633 乘法器做了一个模拟鉴相电路,将 X 和 Y 两个正弦波相乘,OUT 端得到那下面个视波器波形,输出大多在 0V 以下,由于电压刻度每格是 500mV,所以大约是-1.5Vp-p,但我现在碰到一个问题就是不知道要如何将此信号透过低通滤 ...…

查看全部问答>

STM32之RCC寄存器组概略

初触STM32,一堆的寄存器可谓是头大,今天闲得蛋疼,理了下RCC寄存器组,共10个寄存器,虽然没有记下来,但是基本知道该寄存器组的作用。这里也没具体列出哪个寄存器的某一位是啥作用,但是一眼看去基本知道这个寄存器是可以设置哪些项的,这样也能 ...…

查看全部问答>