如何给arduino编写库文件.docx

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
如何给arduino编写库文件

给Arduino编写库文件Loki于2014-8-29整理本文档解释了如果给Arduino创建库文件。先从描述一个会闪烁的摩斯码代码开始,再解释怎么样把它转换成库文件。这样你写的代码就能很容易地让别人使用,同时也方便你进行修改并更新它。如果想了解更多,请查看API Style Guide,一个让你的库制作一个良好的Arduino API风格的指导。我们以一个简单的摩斯码工程代码开始:int?pin?=?13;void?setup(){??pinMode(pin,?OUTPUT);}void?loop(){? dot();?dot();?dot();? dash();?dash();?dash();? dot();?dot();?dot();??delay(3000);}void?dot(){??digitalWrite(pin,?HIGH);??delay(250);??digitalWrite(pin,?LOW);??delay(250);}void?dash(){??digitalWrite(pin,?HIGH);??delay(1000);??digitalWrite(pin,?LOW);??delay(250);}如果你运行这个工程,它会在13引脚上闪烁来发送一个SOS信号(一个求救信号)。我们需要把该工程一些不一样的地方放到我们的库里面去。第一,当然我们需要真正起作用(制造闪光)的dot()和dash()函数。第二,需要一个给函数用来确定哪个引脚需要使用的ledPin变量。最后,代码中调用了一个把引脚初始化为输出的函数pinMode()。让我们开始把这个工程转换成一个库!你最少需要两个库文件:一个头文件(扩展文件.h)和一个源文件(扩展 .cpp)。这个头文件为库做了各种定义:把所有基础的东西都罗列在里面了;而源文件则包含着真实的代码。我们会把我们的库叫做“摩斯码”,所以我们的头文件就是Morse.h。让我们来看一看它是什么样的。它刚开始看起来有点奇怪,但是当你看了它的源代码之后,你就会觉得它越来越亲切了。头文件的核心包括了:把库的每一个函数列出来;声明了一个有你需要变量的类:class?Morse{??public:? ? Morse(int?pin);? ??void?dot();? ??void?dash();? private:? ??int?_pin;};一个类是把所有的函数和变量都集中到了一个地方。这些函数和变量可以是公共的(public),意味着能让使用你的库的人来调用这些函数和变量;当是私有的(private)时候,这些函数和变量只能在类里面进行调用。每一个类都有一个特殊的函数被叫做构造器(constructor),一个用来创建类的实例的函数。这个构造器有着和类一样的名字,同时不能有返回类型。你还需要对头文件做两件事情。一个是需要使用#include声明你调用了Arduino语言的标准类型和变量(这个会自动在普通的工程中进行声明,但是不会在库中自动声明)。它看起来像这样(大概就像事先给类进行定义):#include Arduino.h最后,都会使用如下奇怪的结构把整个头文件放到里面去:#ifndef Morse_h#define Morse_h// the #include statment and code go here...#endif显而易见,这样的结构是预防某人不小心调用了两次你的库。最后,你通常会对库的名字在最开始的部分进行说明,简单的描述它是干嘛用的,谁写的,什么时候写的,还有谁可以使用它。让我们看一下完整的头文件:/*? Morse.h - Library for flashing Morse code.? Created by David A. Mellis, November 2, 2007.? Released into the public domain.*/#ifndef Morse_h#define Morse_h#include Arduino.hclass?Morse{??public:? ? Morse(int?pin);? ??void?dot();? ??void?dash();? private:? ??int?_pin;};#endif现在让我们过一遍源码的各个部分,Morse.cpp。第一需要把两个声明包含进来。这些声明能够调用标准的Arduino函数,还可以调用你在头文件以定义的内容。#include Arduino.h#include Morse.h下面我们来说说构造器。它解释了当某人使用你的类创建了一个实例之后会发生什么。这种情况下,用户最关心的是他们能够使用哪个引脚。我们把这个引脚配置成输出并将它保存到一个私有变量里,用来给其他的函数进行调用。Mor

您可能关注的文档

文档评论(0)

junjun37473 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档