- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
如何给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
您可能关注的文档
最近下载
- 2022小学语文新课标测试题库及答案.pdf VIP
- 初中生积极心理品质培育策略与实践研究.docx VIP
- 投标服务承诺书(20篇).docx VIP
- 七年级英语第一次月考卷(考试版A4)【测试范围:沪教版五四学制2024 Starter~Unit 1】(上海专用).docx VIP
- 李白按年龄顺序写的诗.docx VIP
- 2025年四川省高考化学试卷真题(含答案解析).docx
- 高频精选:京东快递员ai面试题及答案.doc VIP
- 高频精选:京东快递员ai面试题及答案大全.doc VIP
- 吉林省中药软片炮制规范.pptx VIP
- 名著阅读《湘行散记》七年级语文上册部编版(共9页).docx VIP
文档评论(0)