创作

完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>

3天内不再提示

开发单片机应掌握的几个技巧

来源:未知 作者:胡薇 2018-11-22 16:21 次阅读

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

一、如何提高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等测试。可以使用各种干扰模拟器来测试单片机系统的可靠性。

例如使用静电模拟器测试单片机系统的抗静电ESD能力;使用突波杂讯模拟器进行快速脉冲抗干扰EFT测试等等。邓宏杰强调:“还可以模拟人为使用中,可能发生的破坏情况。人体或者衣服织物故意摩擦单片机系统的接触端口,由此测试抗静电的能力。用大功率电钻靠近单片机系统工作,由此测试抗电磁干扰能力等。”

原文标题:单片机开发中应掌握的基本技巧

文章出处:【微信号:wujianying_danpianji,微信公众号:单片机精讲吴鉴鹰】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    FlyMcu单片机在线编程软件下载

    FlyMcu单片机在线编程软件免费下载。
    发表于 05-26 17:47 0次 阅读

    NFC 双向通讯 13.56MHZ 非接触式阅读器芯片 --Si512 替代 PN512

    射频识别 (RFID) 技术在酒店门锁等非接触式读卡领域,现存的方案普遍因读卡电流较大,容易受外部干扰,从而造成芯片跑飞。基...
    发表于 05-26 15:53 38次 阅读

    详解回调函数的概念及使用步骤

    回调函数就是一个被作为参数传递的函数。在C语言中,回调函数只能使用函数指针实现,在C++、Pytho....
    的头像 嵌入式应用开发 发表于 05-26 15:20 95次 阅读

    基于语音芯片的水位漏水报警器设计

    水位漏水报警器,在超过水位设定值之后为防止发生事故,会通过信号触发、声光报警等方式使人可以早期发现及....
    发表于 05-26 11:11 0次 阅读

    Microchip推可配置单片机CEC1736信任盾系列产品

    Microchip Technology Inc.(美国微芯科技公司)宣布推出基于完全可配置单片机的....
    的头像 科技绿洲 发表于 05-26 09:51 316次 阅读

    mqtt协议怎么用?以MQTT3.1协议ESP8266连接阿里云物联网平台

    MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协....
    的头像 嵌入式技术 发表于 05-25 18:32 1112次 阅读
    mqtt协议怎么用?以MQTT3.1协议ESP8266连接阿里云物联网平台

    基于51单片机的雨刷控制系统Proteus仿真

    基于51单片机的雨刷控制系统Proteus仿真
    发表于 05-25 15:42 11次 阅读

    单片机电子密码锁 1602 6位

    是个人都能用
    发表于 05-25 15:05 5次 阅读

    mh188 超高灵敏双极锁存性霍尔 2.5V~24V 适用筋膜枪 直流无刷电机

    Mh188是一颗超高灵敏度双极锁存性霍尔元件。它是温度稳定的抗应力传感器。利用斩波稳定技术,能够达到卓越的高温工作性能。降...
    发表于 05-25 11:55 992次 阅读
    mh188 超高灵敏双极锁存性霍尔 2.5V~24V 适用筋膜枪 直流无刷电机

    基于WT588F02B语音芯片的手写提示板方案

    你是不是经常忘记做某些事情?你是不是经常沉浸在自己的工作中而错过了其他的工作?你是否想要一个没有手机....
    发表于 05-25 11:48 6次 阅读

    芯昇mcuXS32F030的性能介绍

    XS32F030性能介绍
    发表于 05-25 09:52 27次 阅读
    芯昇mcuXS32F030的性能介绍

    Vitis HLS工具简介及设计流程

    Vitis HLS 是一种高层次综合工具,支持将 C、C++ 和 OpenCL 函数硬连线到器件逻辑....
    的头像 Xilinx赛灵思官微 发表于 05-25 09:43 195次 阅读

    单片机驱动AT24C02存储芯片使用手册

    AT24C02是一个2K位串行CMOS E2PROM, 内部含有256个8位字节,CATALYST公....
    发表于 05-24 17:28 11次 阅读

    高灵敏度单极霍尔IC的特点及应用介绍

    mh282 高灵敏单极性霍尔开关;电压2.5V~24V;待机电流2.5mA;输出电流50mA;高灵敏....
    发表于 05-24 15:15 28次 阅读
    高灵敏度单极霍尔IC的特点及应用介绍

    超级电容三种用途及应用

           超级电容又称为电化学电容、双电层电容、黄金电容、法拉第电容等。不同于传统的化学电源,超级电容...
    发表于 05-24 10:21 1033次 阅读

    如何移植RT-Thread工程师到32位单片机?这6个经典学习笔记,工程师都学过

    如何才能有效地学习RT-Thread?在越来越多的人迈入RT-Thread开发者行列,经常很多人会问....
    的头像 jf_35791075 发表于 05-24 09:40 4次 阅读
    如何移植RT-Thread工程师到32位单片机?这6个经典学习笔记,工程师都学过

    便携式手持补水仪芯片—DLT8P65SA图解

    审核编辑:符乾江
    发表于 05-23 17:05 8次 阅读
    便携式手持补水仪芯片—DLT8P65SA图解

    C语言基础知识分享

    常见问题答疑 1. 学习 java为什么建议先学 语言 没学过计算机专业课程能够学懂 语言 英....
    发表于 05-23 16:07 15次 阅读

    CS5210_HDMI to VGA(不带音频)方案_规格书

    CS5210_HDMItoVGA(不带音频)方案
    发表于 05-23 15:37 3次 阅读

    CS5211_eDP转LVDS方案_规格书

    CS5211_eDP转LVDS方案
    发表于 05-23 15:37 3次 阅读

    CS5212_DP转VGA(内置Flash可更新FW)规格书

    CS5212_DP转VGA(内置Flash可更新FW)
    发表于 05-23 15:37 4次 阅读

    CS5213_HDMI转VGA(带音频)单转方案_规格书

    CS5213_HDMI转VGA(带音频)单转方案
    发表于 05-23 15:37 4次 阅读

    CS5216_DP to HDMI(1080P)方案_规格书

    CS5216_DPtoHDMI(1080P)方案
    发表于 05-23 15:36 4次 阅读

    CS5218_DP转HDMI(4K@30Hz)方案_规格书

    CS5218_DPtoHDMI(4K@30Hz)方案
    发表于 05-23 15:36 5次 阅读

    CS5220HDMI转VGA(内置Flash可更新FW)方案

    CS5220_HDMI转VGA(内置Flash可更新FW)方案
    发表于 05-23 15:32 3次 阅读

    CS5261_Type-C转HDMI(4k@30Hz)规格书

    CS5261_Type-C转HDMI4k@30Hz
    发表于 05-23 15:32 3次 阅读

    CS5262_DP转HDMI(4k@60Hz)+VGA规格书

    CS5262_DP转HDMI(4k@60Hz)+VGA
    发表于 05-23 15:24 3次 阅读

    CS5263_DP转HDMI 4k@60Hz单转方案_规格书

    CS5263_DP转HDMI4k@60Hz单转方案
    发表于 05-23 15:24 3次 阅读

    CS5265_Typoe-C转HDMI 4K@60Hz规格书

    CS5265_Typoe-C转HDMI4K@60Hz
    发表于 05-23 15:24 4次 阅读

    CS5266_Type-C转HDMI+USB3.0+PD快充

    CS5266_Type-C转HDMI+USB3.0+pd3.0+usb3.0
    发表于 05-23 15:20 4次 阅读

    CS5267_Type-C转HDMI带PD3.0方案_规格书

    CS5267_USB-CtoHDMI4K@60Hz+PD3.0(NoUSB3.0)
    发表于 05-23 15:20 5次 阅读

    CS5268_Type-C转HDMI多功能拓展坞设计资料

    CS5268_USB-CtoHDMI4K@30Hz+VGA+PD3.0(+USB3.0)
    发表于 05-23 15:19 3次 阅读

    CS5269_USB-C转HDMI+VGA+PD3.0规格书

    CS5269_USB-C转HDMI4K@60Hz+VGA+PD3.0(NoUSB3.0)
    发表于 05-23 15:14 6次 阅读

    一文弄懂ARM芯片的地址重映射

    映射就是一一对应的意思。重映射就是重新分配这种一一对应的关系。 我们可以把存储器看成一个具有输出和输入口的黑盒子。如下图...
    发表于 05-23 15:03 1513次 阅读

    基于GD32F450的高级定时器实现六步换向

    一、六步换向 六步换向是针对直流无刷电机的一种较简单的控制算法,三相导通顺序循环按照(A,B),(C,B),(C,A),(B,...
    发表于 05-23 14:34 967次 阅读

    生物信号采集处理系统的心电描记“新发现”

    心脏在机体内处于体液所构成的容积导体之中,在心脏兴奋的除 极和复极过程中可出现电耦,因而在容积导体中....
    发表于 05-23 13:48 30次 阅读
    生物信号采集处理系统的心电描记“新发现”

    内存管理模块mem_malloc介绍及测试验证实验

    本次给大家分享一位大佬写的应用于单片机内存管理模块mem_malloc,这个mem_malloc的使....
    的头像 FPGA之家 发表于 05-23 11:57 186次 阅读

    段码屏与串口屏的区别是什么

    通常来说串口屏就是通过串口控制的液晶屏,详细定义:一套由单片机或PLC带控制器的显示方案,显示方案中....
    发表于 05-23 10:26 9次 阅读

    开源轻量级单片机命令行交互项目

    相关的设置在按下sapce键选中后,按enter可进行相关参数配置。然后让 RT-Thread 的包....
    的头像 小麦大叔 发表于 05-23 09:52 106次 阅读

    基于non-OS和RT-Thread的按键库源码及应用

    核心的按键扫描代码仅有三行,没错,就是经典的 三行按键扫描算法。使用 C 语言标准库 API 编写,....
    的头像 硬件攻城狮 发表于 05-23 09:39 304次 阅读
    基于non-OS和RT-Thread的按键库源码及应用

    单片机开发入门知识介绍

    单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器R....
    的头像 DS小龙哥-嵌入式技术 发表于 05-23 09:01 175次 阅读

    请问CH563单片机如果不采用PWM输出是否可以外接I2S芯片?

    请问CH563单片机,是否语音播报方案案例,如果不采用PWM输出,是否可以外接I2S芯片?    ...
    发表于 05-23 08:03 59次 阅读

    CH552T的AD损坏是什么原因导致?

    最近客户返回一些控制,发现CH552T的AD为0,AD用的P1.1,平。4,P1.5和P3.2,开始功能都正常,运行两天后不正常,发现...
    发表于 05-23 07:45 37次 阅读

    我想控制24V的电磁阀以50HZ的频率脉冲开闭,是用单片机还是plc合适呢?初学者,望大神解惑

    我想控制一个电磁气阀脉冲开闭,并且脉冲频率可调。不知道怎么实现,希望有大神可以给解惑。 24V的电磁阀,希望频率50hz并且可...
    发表于 05-21 16:49 744次 阅读

    如何為电源选择正确的工作频率,你知道麽?

           为您的电源选择最佳工作频率是一项复杂的权衡,涉及尺寸,效率和成本。通常,低频设计往往是最有效...
    发表于 05-21 10:46 828次 阅读
    如何為电源选择正确的工作频率,你知道麽?

    数字旋钮编程的详细解析

    数字旋钮编程思路和技巧
    的头像 刘学NRT 发表于 05-21 09:31 99次 阅读
    数字旋钮编程的详细解析

    C语言_二维数组与一维指针

    字符串:本身属于字符数组、字符串结尾有’\0’。
    的头像 DS小龙哥-嵌入式技术 发表于 05-21 09:11 351次 阅读

    单片机多功能调试助手下载

    单片机多功能调试助手下载入口。
    发表于 05-20 17:19 26次 阅读

    简约便携加湿器专用芯片—DLTAP701SC概述

    一、产品组成 1个机械按键,1个2.4M雾化片,1个无源蜂鸣器,1个风扇,1路灯输出; 二、产品功能....
    发表于 05-20 15:46 166次 阅读
    简约便携加湿器专用芯片—DLTAP701SC概述

    教你如何提高布线水平的技巧

           布线是PCB设计中最耗时耗力的一个环节,也最能考验PCB工程师的技术水平。作为一名有追求的P...
    发表于 05-20 10:46 2777次 阅读
    教你如何提高布线水平的技巧

    详解内存池技术的原理与实现

    最近在网上看到了几篇篇讲述内存池技术的文章,有一篇是有IBM中国研发中心的人写的,写的不错~~文章地....
    的头像 Linux内核补给站 发表于 05-20 08:58 3522次 阅读
    详解内存池技术的原理与实现

    微控制器中各式各样的编程语言

    在上一篇文章中,我们探索了微控制器中的软件与硬件,并分析了为何微控制器的软件和硬件相辅相成缺一不可。....
    的头像 东芝半导体 发表于 05-19 19:58 632次 阅读

    电子计时器的开发原理及功能

    电子计时器是一种新型的电子读数工具,有时候又叫做秒表。在日常生活工作学习中,能够非常有效地帮助我们更....
    的头像 xinling技术 发表于 05-19 17:10 297次 阅读

    MCU供应商的专业程度正在推动整个产业的发展

    芯片行业近些年来受到社会大众的高度关注,所谓“外行看热闹,内行看门道”这样一种趋势之下,很多专业人士....
    发表于 05-19 17:01 38次 阅读

    nxp电源管理芯片的封装与基本原理简介

    nxp电源管理芯片是热管的另一重要器件。该组件的邻近工程成本基本上为零,因为它不需要任何形式的主控制....
    发表于 05-19 15:13 45次 阅读

    C语言—数组详解

    介绍C语言数组的知识点。
    的头像 DS小龙哥-嵌入式技术 发表于 05-19 10:15 3591次 阅读

    单片机开发的智能跳绳解决方案

    智能跳绳不仅解决了计数、数据收集、对比分析等技术问题,也能记录各种运动数据和体能消耗情况,还可以随意....
    发表于 05-18 17:44 41次 阅读

    中断优先级处理的原则及配置 抢占优先级和响应优先级的区别

    首先我们需要知道什么是中断优先级:中断优先级是CPU响应中断的先后顺序
    的头像 嵌入式应用开发 发表于 05-18 15:10 379次 阅读
    中断优先级处理的原则及配置 抢占优先级和响应优先级的区别

    TWS/1/单键/单通道触摸触控芯片VKD233DB概述

    VKD233DB 概述: VKD233DB SOT23-6是单按键触摸检测芯片, 此触摸检测芯片内建....
    发表于 05-18 09:35 49次 阅读

    关于CAS等原子操作介绍 无锁队列的链表实现方法

    在开始说无锁队列之前,我们需要知道一个很重要的技术就是CAS操作——Compare & Set,或是....
    的头像 书生途 发表于 05-18 09:12 145次 阅读
    关于CAS等原子操作介绍 无锁队列的链表实现方法