预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10
亲,该文档总共16页,到这已经超出免费预览范围,如果喜欢就直接下载吧~
如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
SonxunArduino开发环境
Aduino开发环境开发环境教程教程教程教程
111.11.1.1.1程序开发流程
在计算机中有着许多不同的程序,有的跟系统有关,负责处理硬件之间的数据交换及命
令控制,如操作系统(OperatingSystem,OS)、编译程序(Compiler)等。有的程序则是架构在
系统程序之上,可以满足使用者的部分需求,如Office、游戏、多媒体播放程序等。
在做微处理器的程序开发时,最关键的一步就是将程序编译成单片机看得懂的机器语言,
而这部分工作由计算机上的相关程序来执行。一般来说,微处理器的系统开发商都会搭配特
定软件供开发者编写其应用程序。不同于高阶
的程序设计语言,目前常用于单片机系统的程
序代码为汇编语言(Assembly)、C/C++等种类。
典型的程序开发流程如右图所示,设计完系统
所要的执行程序后,再编译成扩展名为.hex
的特殊格式的程序文件,微处理器就能看得懂
了。接下来,就可以把程序下载、烧录到单片
机中,测试结果是否符合你的预期了。
111.1.11.1.1编辑编辑编辑
这是开发的第一个步骤:产生程序代码。相信很多人听说过:程序厉害的人用记事本程
序就可以工作了。这句话只说对了一半,因为记事本只能帮你记录下整个程序的流程、函数、
所引用的函数库等,编写完毕后另存成扩展名为.c、.cpp等。不过,一个专属的程序开发环
境,还可以帮你管理项目内的多个程序,也可以利用颜色高亮来区分程序代码类的内容在这
个阶段,大家习惯的编辑环境不一样,只要使用方便即可。还是希望初学者能够找寻到合适
的编辑环境,除了可以帮助编写程序外,也可以省下许多宝贵的时间。
111.1.21.1.2编译编译编译
前面说到,计算机、单片机等程序执行时,机器看得懂的只有010101的数字信号,而前
面编辑的步骤所使用的语法是为了方便开发者了解每个函数的功能:越高级的语言,越能让
开发者更直观了解函数的功能,程序所占的空间也会相应增加。这个阶段的工作就是将我们
编辑完的文字文件转换成机器码。这个步骤会帮你检查程序上的错误,并提出警告。因此这
个步骤完成后通常会回到前一个步骤将语法错误、逻辑错误的地方进行修正,直到编译器没
有产生错误提示为止。
但是,在开发单片机的程序是,特别要注意的是看不见的错误,举例来说:系统接着5
个LED发光二极管,程序目标是要控制第二个的明暗变化,不过在程序编辑时,不小心将控
制目标变成了第四个,这样的错误在编译时是不会看到的,只有程序执行时才会发现错误,
你可能还会怀疑是否是硬件电路接错了,实际上却是程序的编辑错误。这种问题的发生在单
片机的开发过程中很常见,所以要特别注意。
111.1.31.1.3链接链接链接
当我们的项目程序越来越大时,为了方便管理,通常会根据功能分成不同的文件,链接
的作用就是寻找程序当中所有用到的功能模块、内建函数库原始程序的位置,再与主程序结
合成为一个可执行文件。这时候产生的错误,可能是你使用了某个函数,却没有将其路径正
确引用,造成链接错误,此时便会提出警告。例如,使用数学相关的函数MAX()、SIN()等,
都要引用math.h这个头文件。
www.sonxun.com松迅科技
SonxunArduino开发环境
111.1.41.1.4执行执行执行
能够执行程序的话,恭喜你已经成功的完成前面的步骤,终于可以看到程序运行结果了。
不过,能执行不一定表示结果符合预期,还可能有各种不同的错误情形发生。如果只是刚才
的LED控制错误还是小意思,如果控制的机械设备因为程序的错误而造成损害,那就得不偿
失了。
针对单片机这种硬件程序开发,执行测试程序时通常需要先进行烧录,也就是将程序下
载到芯片中。这个动作大都需要特殊的线路,以前常用的接口为串行端口或并行端口,也就
是台式计算机的9PIN或25PIN接口,不过新的烧录接口慢慢都被USB取代了。烧录接口还有
功能性差异,最基本的就只是将编译完的程序直接烧录,而进阶版的则可以支持单步执行,
这个功能可以让开发者逐行执行程序,更容易发现问题。这类高阶的烧录器通常成为JTAG
(JointRestActionGroup),如下图所示。
有的单片机也会提供单纯烧录程序用的电路,让开发者可以自行制作,可以节省一些开
销,除了多花点时间也不失为一个好办法。
Arduino的核心芯片也支持ISP(InSystemProgramming)功能。所谓ISP,就是在无需
改变硬件连接甚至硬件仍处于执行阶段时,也可以随时下载新的程序代码。这样的好处在于,
烧录程序时单片机不需要拔离系统电路,节省时间。
Arduino的板子有将ISP的引脚另外引出,方便我们烧录程序,但还是需要额外的硬件来
配合。Arduino的烧录