历史上的今天
返回首页

历史上的今天

今天是:2025年12月21日(星期日)

2022年12月21日 | 单片机初学者编程经常会碰到的问题及处理办法

2022-12-21 来源:zhihu

在刚开始接触单片机学习的时候,尤其是C语言基础比较薄弱的老铁们,经常会碰到很多比较低级的错误,程序编译错误一大堆,但不知道如何解决!

一、程序开发经常容易出现的问题汇总:

①忘记写分号,或分号输入错误,导致程序编译错误。

基本上每个C语言初学者都会碰到这个问题,忘记写分号,或者分号的输入格式错误。

C语言中的每条语言结束都是以分号为标志的,而且分号必须是英文输入模式下的输入。

②大括号不对等,导致编译不通过

C语言程序编程,大括号的左括号和右括号必须一一对应,否则编译提示错误。

③函数未声明,编译提示函数功能违法。

C语言中编程种,调用代码后面书写的函数,必须要先在文件的前面声明,再调用,否则就会报错,如果是调用前面的函数,可以不声明。

为了养成良好的习惯,C文件的所有函数最好都可以在对应的.H文件或本文件的前面声明一下。

④语法错误,“=”和“==”混淆,“&”和“&&”,“|”和“||”用法不能区分。

初学者,对C语言的符号理解不够透彻,导致程序编写逻辑错误。

⑤没有将.C文件加到工程中,导致编译无法通过。

⑥打开工程,.h文件提示感叹号。

从其他地方下载或拷贝的工程,.h经常会提示感叹号,出现这个问题只需要重新编译,感叹号就会消失。

⑦其他问题,没有增加.h文件,没有写main函数,备注格式错误等。


二、如何处理这些问题

每一个软件程序开发者,刚开始学习软件编程的时候,都会出现这些零零碎碎的问题,但大家别慌,出现这些问题都是很正常的,软件开发学习过程都会有这样的经历,当我们敲的代码多了,自然而然就会掌握经验,避免这些问题。

刚开始学习编程,如何处理这些问题?

编译错误的处理办法:

处理方法1:双击提示的错误信息,光标会自动跳转到错误提示处。

在光标跳转到的位置,仔细检查问题,是不是大括号不对应?是不是分号写成了中文输入格式?是不是“|”写成了”||”.

这个是程序编程过程中最常用的方法。

处理方法2: 将编译的错误提示,点击右键复制,然后百度搜索相关信息。

这个办法适合于处理一些较复杂的问题

处理方法3: 向一些有经验的老工程请教。

这种方法是必须是要有人帮助你的情况下才能实现。

我们在单片机学习的过程中,经常会因为一些小的问题很久不能解决和处理而放弃单片机的学习,如果大家没有这样的资源,可以关注无际单片机编程,得到帮助。


三、单片机程序开发,养成良好的编程习惯

①掌握单片机C语言基础

C语言是单片机程序开发的基础,所以单片机开发首先要学习单片机C语言基础。关于C语言开发必须要掌握的知识点如下所示:

这块入门的系统教程可以到无际单片机编程拿,很多零基础的看了反馈都还不错。

②层次分明,大括号对应

1).大括号需要一一对应

2).被包含的大括号内的程序需要右移一个tab按键字符

3).如蓝色框,同一个括号内的程序需要左对齐书写

程序开发逻辑一定要分明,这样不仅方便我们阅读程序代码,也方便我们查找代码程序的错误和警告

④统一的变量定义格式

在C语言编程中,虽然对变量的名词,函数名,端口的定义没有严格的要求,但我们在程序中的变量名称,函数名的格式要尽量统一。

1).变量的定义: 习惯变量的头字母大写,后面字母小写,变量的名称尽量和对应的英文字母一致

例如:unsigned char KeyState;/// 按键的状态

2).端口的定义: 端口定义,名称全部大写

例如:sbit LED1 = P3^0; //定义LED1对应的IO是P3.0

3).函数名的书写:

函数的名称一般根据函数的功能来定义的,方便大家阅读,如下:

⑤增加规范的程序备注说明。

对功能比较重要,逻辑较复杂的函数,我们一定要做好程序的备注说明,这不仅方便别人阅读,也方便自己查看,自己写的程序放的时间太久了也容易忘记。


推荐阅读

史海拾趣

富信半导体(FOSAN)公司的发展小趣事

台湾第一电阻(Firstohm)公司的发展故事

故事一:创立与早期技术积累

台湾第一电阻电容器股份有限公司(Firstohm)成立于1969年,初期便专注于电阻器的生产制造。在那个电子工业刚刚起步的年代,Firstohm凭借其敏锐的市场洞察力和对技术的不懈追求,逐步在电阻器领域站稳脚跟。1970年,公司开始接受日本东京应濑无线公司的代工订单,外销至日本市场,这一合作为Firstohm打开了国际市场的大门。此后,公司不断引进和吸收先进技术,如1986年从日本横演电子精工取得的精密级金属皮膜电阻技术,为公司的技术积累奠定了坚实基础。

故事二:晶圆电阻的突破

1987年,Firstohm成功研发并量产晶圆电阻(又称MELF电阻),这一成就标志着公司在电阻器制造技术上的重大突破。晶圆电阻以其优异的性能和广泛的应用领域,迅速获得了市场的认可。Firstohm也因此成为全球少数几家具备晶圆电阻生产能力的厂商之一,为公司后续的发展奠定了技术领先地位。

故事三:国际认证与品质提升

进入21世纪,Firstohm更加重视产品品质和国际化发展。2001年,公司获得ISO14001 Green Dove奖项及ISO9001认证,标志着公司在环境管理和质量管理方面达到了国际先进水平。此后,公司不断通过国际认证,如ISO9001:2008、IECQ品质认证等,进一步提升了产品的竞争力和市场信誉。这些认证不仅是对公司产品质量的认可,也为公司拓展国际市场提供了有力支持。

故事四:创新产品的研发

Firstohm始终坚持创新驱动发展战略,不断推出符合市场需求的新产品。例如,2012年,公司间隙式突波吸收器(SGS)获得日本、中国大陆及韩国专利许可;2017年,成功开发AEC-Q200车规级晶圆电阻;2020年,又成功开发出心电导线图(ECG cable)专用电阻器SSWAT系列。这些创新产品的研发和推出,不仅丰富了公司的产品线,也进一步巩固了公司在电阻器领域的市场地位。

故事五:自动化生产与全球化布局

随着电子行业的快速发展和市场竞争的加剧,Firstohm不断加大在自动化生产和全球化布局方面的投入。公司生产线高度自动化,生产效率和产品品质显著提升。同时,Firstohm积极拓展海外市场,与全球多家知名电子企业建立了长期稳定的合作关系。例如,与美国通用、THOMSON、法国雷诺等公司的合作,不仅提升了公司的品牌知名度,也为公司带来了更多的市场机遇和发展空间。

Elma Electronic Inc公司的发展小趣事

在Covid-19疫情期间,Elma展现了其应对挑战的能力。公司引入了良好的保护措施,并不断调整和改进以适应疫情带来的变化。同时,Elma还积极响应市场需求,为医疗领域提供了大量旋转开关等关键设备,为欧洲和东南亚的医院做出了重大贡献。此外,公司还为瑞士的客户开发和制造了消毒设备,帮助当地进行疫情防控。

以上5个故事涵盖了Elma Electronic Inc公司在电子行业发展的多个方面,展现了其强大的实力和应对挑战的能力。

Global Specialties公司的发展小趣事

随着电子技术的快速发展,教育和培训成为了Global Specialties的另一个重要领域。公司敏锐地捕捉到这一市场需求,推出了一系列针对教育的试验板和套件。这些产品不仅帮助学生更好地理解电子原理,还激发了他们的创造力和实践能力。通过与多所高校和职业院校的合作,Global Specialties成功地将自己的品牌深入到教育市场的每一个角落。

潮州三环(Three-circle)公司的发展小趣事

面对能源危机的挑战和新能源市场的崛起,三环集团决定进军新能源领域。在2004年,公司开始研发生产燃料电池电解质基片(SOFC),这是一种能够将化学能转化为电能的装置。通过多年的努力,三环集团成功实现了SOFC的量产,并将其应用于新能源汽车、分布式发电等领域。这一布局不仅展示了公司的前瞻性和创新能力,也为公司带来了新的发展机遇。

Clever Little Box公司的发展小趣事

Clever Little Box公司成立于1964年,当时正值电子行业的蓬勃发展时期。创始人凭借对音频和电子技术的深厚理解,以及对市场的敏锐洞察,决定成立这家公司,专注于音频和电子组件的分销。创业初期,公司面临着资金短缺、市场竞争激烈等诸多挑战,但创始人凭借坚定的信念和不懈的努力,逐渐在市场中站稳了脚跟。

Amaze Electronics Pte Ltd公司的发展小趣事

随着业务的不断发展,Amaze Electronics意识到国际市场的巨大潜力。于是,公司积极寻求与国际知名电子企业的合作,共同开发新产品。通过与这些企业的深度合作,Amaze Electronics不仅获得了先进的技术支持,还成功将产品打入国际市场,实现了业务的快速拓展。

问答坊 | AI 解惑

师兄(姐):求教

本帖最后由 paulhyde 于 2014-9-15 09:15 编辑 我的毕业设计是 DC-AC变换电路设计 我找不到啊  …

查看全部问答>

ARM菜鸟进阶

ARM菜鸟快速上手…

查看全部问答>

IBM虚拟化实战:AIX工作负载分区管理

  【IT168 服务器频道】本文向您介绍了工作负载分区(WPAR),这个 AIX 6 的新功能,它是一个通过纯软件实现虚拟化的技术。通过 WPAR 可以实现新一级别的 AIX 虚拟化功能,它补充现有的虚拟化功能的不足,实现了在不修改应用程序代码的情况下,在 ...…

查看全部问答>

LED控制器

菲克电子引领LED灯饰技术潮流,菲克电子大量提供LED护栏管点光源控制器,背光模组控制器,lED控制器,有全彩单片机方案,DM134方案,脱机,联机,USB,CF,SD,电脑控制,遥控,可根据客户要求制作。吕先生13232392096…

查看全部问答>

红外摄像机的常见的几个问题随笔(转)

  关于红外的些小想法,由来已久,正值五一放假来临之际,随便写写,有些想法是公司由来已久,有些是同事告知,有些是在同行那儿收集,现在,趁这个五一放假而有小小空时,在自己喜爱的千家上,写一下关于红外的随笔,希望能得到行家的指正;    & ...…

查看全部问答>

意念轮椅

据英国媒体报道 西班牙科学家研制出一部可以用人的意念来操作的轮椅。“意念轮椅”上装备着一部电脑,通过连接着轮椅的激光扫描仪,周围环境将会以三维图像的形式出在电脑的显示屏上。使用者只要对着屏幕上想去的地方集中精力,头上的电极头盔就能 ...…

查看全部问答>

WINCE散分中。。

ARM WINCE群 欢迎大家加入:35526208…

查看全部问答>

【低功耗】Xilinx的FPGA低功耗相关文章下载(二)

这是我的一些Xilinx的FPGA的论文,传上来给大家分享一下!大家多多支持啊! 我会分批上传,方便大家选择性的交流与下载!…

查看全部问答>

LM3S9L97 CAN模块

各位大侠!小弟自己搭了一块LM3S9L97板子,现在调到CAN模块遇到了点不懂的问题请教一下, TX 就是在初始化过后然后设置ID和数据什么的     g_sCANMsgObject1.ulMsgID = 0x1001;    //CAN报文ID    ...…

查看全部问答>

modelsim单步调试

网上找了很多资料,关于单步调试的资料不多,能不能推荐些资料。           单步调试时,17-19行是每步执行一行,但到20行时,跳到24行,要三步才能跳出24行,为什么要三步呢?…

查看全部问答>