预览加载中,请您耐心等待几秒...
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的烧录