历史上的今天
返回首页

历史上的今天

今天是:2025年06月07日(星期六)

2020年06月07日 | 归纳出单片机开发中应掌握的几个基本技巧

2020-06-07 来源:elecfans

在单片机应用开发中,代码的使用效率问题、单片机抗干扰性和可靠性等问题仍困扰着工程师。为帮助工程师解决单片机设计上的难题,现根据论坛中的讨论归纳出单片机开发中应掌握的几个基本技巧。

一、如何提高C语言编程代码的效率

邓宏杰指出,用C语言进行单片机程序设计是单片机开发与应用的必然趋势。“如果使用C编程时,要达到最高的效率,最好熟悉所使用的C编译器。先试验一下每条C语言编译以后对应的汇编语言的语句行数,这样就可以很明确的知道效率。在今后编程的时候,使用编译效率最高的语句。”


他指出,各家的C编译器都会有一定的差异,故编译效率也会有所不同,优秀的嵌入式系统C编译器代码长度和执行时间仅比以汇编语言编写的同样功能程度长5-20%。“对于复杂而开发时间紧的项目时,可以采用C语言,但前提是要求你对该MCU系统的C语言和C编译器非常熟悉,特别要注意该C编译系统所能支持的数据类型和算法。


虽然C语言是最普遍的一种高级语言,但由于不同的MCU厂家其C语言编译系统是有所差别的,特别是在一些特殊功能模块的操作上。所以如果对这些特性不了解,那么调试起来问题就会很多,反而导致执行效率低于汇编语言。”


二、如何减少程序中的bug?

对于如何减少程序的bug,邓宏杰给出了一些建议,他指出系统运行中应考虑的超范围管理参数有:

1.物理参数。这些参数主要是系统的输入参数,它包括激励参数、采集处理中的运行参数和处理结束的结果参数。合理设定这些边界,将超出边界的参数都视为非正常激励或非正常回应进行出错处理。

2.资源参数。这些参数主要是系统中的电路、器件、功能单元的资源,如记忆体容量、存储单元长度、堆叠深度。在程式设计中,对资源参数不允许超范围使用。

3.应用参数。这些应用参数常表现为一些单片机、功能单元的应用条件。如E2PROM的擦写次数与资料存储时间等应用参数界限。

4.过程参数。指系统运行中的有序变化的参数。


三、如何解决单片机的抗干扰性问题

邓宏杰指出:防止干扰最有效的方法是去除干扰源、隔断干扰路径,但往往很难做到,所以只能看单片机抗干扰能力够不够强了。单片机干扰最常见的现象就是复位;至于程序跑飞,其实也可以用软件陷阱和看门狗将程序拉回到复位状态;所以单片机软件抗干扰最重要的是处理好复位状态。


一般单片机都会有一些标志寄存器,可以用来判断复位原因;另外你也可以自己在RAM中埋一些标志。在每次程序复位时,通过判断这些标志,可以判断出不同的复位原因;还可以根据不同的标志直接跳到相应的程序。这样可以使程序运行有连续性,用户在使用时也不会察觉到程序被重新复位过。


四、如何测试单片机系统的可靠性

有读者希望了解用用什么方法来测试单片机系统的可靠性,邓宏杰指出:“当一个单片机系统设计完成,对于不同的单片机系统产品会有不同的测试项目和方法,但是有一些是必须测试的:

1.测试单片机软件功能的完善性。这是针对所有单片机系统功能的测试,测试软件是否写的正确完整。

2.上电、掉电测试。在使用中用户必然会遇到上电和掉电的情况,可以进行多次开关电源,测试单片机系统的可靠性。

3.老化测试。测试长时间工作情况下,单片机系统的可靠性。必要的话可以放置在高温,高压以及强电磁干扰的环境下测试。

4、ESD和EFT等测试。可以使用各种干扰模拟器来测试单片机系统的可靠性。

推荐阅读

史海拾趣

Gauthier Connectique公司的发展小趣事
该电路适用于多种设备,包括电视机、录像机、音响设备、空调器和玩具等,展现了广泛的设备兼容性。
Astec [Astec America, Inc]公司的发展小趣事

随着技术的不断成熟和市场的不断扩大,Astec开始积极寻求市场拓展的机会。公司不仅加大了在国内市场的宣传力度,还通过参加国际电子展会等方式,将产品推向了国际市场。同时,Astec还注重品牌形象的建立,通过提供优质的产品和服务,逐渐树立了良好的品牌形象。

Alpha Semiconductor公司的发展小趣事

经过多年的发展,Alpha Semiconductor已经成为一家高性能标准、半标准模拟和混合信号IC制造商。公司在这一领域的制造实力得到了业界的广泛认可。Alpha Semiconductor的产品广泛应用于通信、计算机、消费电子等领域,为电子行业的发展做出了重要贡献。

得力(deli)公司的发展小趣事

随着科技的不断发展,得力公司意识到智能化是未来办公的重要趋势。于是,得力开始研发智能办公产品,如智能会议设备、云考勤、智能摄像头等。这些产品不仅提高了办公效率,也为用户带来了更加便捷、智能的办公体验。得力通过整合全球资源,不断创新和优化产品,逐渐在智能办公领域树立了领先地位。

Bkc Semiconductors Inc公司的发展小趣事

Bkc深知人才是企业发展的核心动力。因此,公司高度重视研发团队的建设和人才培养。通过引进业内顶尖的技术人才和提供完善的培训机制,Bkc逐渐打造出一支技术实力雄厚的研发团队。这支团队不仅为公司带来了源源不断的技术创新,也为公司的长远发展奠定了坚实的基础。

意普(ESPE)公司的发展小趣事

随着市场需求的不断增长,意普(ESPE)公司开始拓展产品线,推出了包括通用光栅、反射板等一系列光电保护产品。同时,公司注重产品创新,不断引进国外先进技术,并结合国内市场需求进行改进,成功推出了多款具有竞争力的新产品。这些产品广泛应用于机械加工、汽车制造等行业,有效提升了客户的安全生产水平。

问答坊 | AI 解惑

【散分100】屏终于調好了。呵呵。

先說一下具體情況。免得本區的老大們笑話了。呵呵 来送分感谢给我提供过建议的朋友。呵呵。 这贴为了回应上一次在WINCE区被转走的一个帖子。调试了半个月终于把屏完全调好了。 呵呵。累啊。 環境:wince5.0 cpu:ARM920T Anyka7802 玻璃:LG ...…

查看全部问答>

OMAP1710 USB 枚举过程中的相关问题

OMAP1710 USB模块,这里我选择的模式是6pin从模式,外部tranciver(TUSB1105),作device用。是不用OTG的。 我用bushound抓的数据显示在set_feacter之后的就一直是get_status,怎么也不能到set_descriptor, 但我的firmware里的串口打印却显示, ...…

查看全部问答>

tcpmp交流群

我建了一个tcpmp的交流群 研究这方面的xdjm过来交流一下哈…

查看全部问答>

用sim300发送彩信问题

这个已经可以拨号上网,给我的一些资料是一些at命令,但是拨号上网是在开发平台上面设置就可以了,我不知道发送彩信是用at命令,还是socket网络编程发送,请大家赐教啊,,急啊,,,…

查看全部问答>

有用过MC145450的调制解调的片子没?

大家好,我最近用到MC145450芯片,我不明白发送1200接收150是什么意思,我想用一个芯子发一个片子收能否可行,难道我1200发150收么???…

查看全部问答>

STM8AD口的笨笨的问题

                                 STM8应该是总共有7个AD口,但是为什么在管脚图上PC4标有AIN2功能    PD2上标有AIN3的功能呢? 害得我设 ...…

查看全部问答>

测量交流电流的问题

请教各位大侠,测量交流电流0 ~100 A,用交流互感器好还是用电阻好?…

查看全部问答>

天气热了,来电清凉的电子作品。

这几天天气大热啊,热到什么程度呢?大概也不清楚。借着手中的LanuchPad和OLED做个温度计玩玩。 所谓无图无真相,先上图。 先是显示效果图。 没开空调之前。 开了一会儿之后。空调设定的24°。 整个全家福。 右边的lanuchPad是打酱油的 ...…

查看全部问答>

新人求问MSP430FLASH

如果Flash中已有若干字节,本次想再写入一个数,接着之前的地址写,那么之前的地址怎么获得? …

查看全部问答>

启用TI解决方案

本帖最后由 dontium 于 2015-1-23 11:12 编辑 本文档介绍了德州仪器推出的解决方案。 如需更多信息,请点击链接访问德州仪器参考设计库:ti../general//docs/refdesignsearch.tsp?DCMP=contrib&HQS=tidesigns-china016-contrib-lp- …

查看全部问答>