Arduino库

作者: iotboy | 来源:发表于2017-01-09 22:43 被阅读1109次

    一、Arduino库是什么

    话不多说先上图

    库文件 Servo.h部分代码图片 Servo.app部分代码图片

    相信看过本人的《每天一点单片机知识系列之Arduino控制舵机》会对Servo.h很熟悉,因为控制舵机的第一段代码就是

    控制舵机代码

    那么Servo.h到底有什么作用呢?相信用过C++和C语言的童鞋对此会比较熟悉,在C语言中对库函数有这样的定义:

    库函数(Library function)是把函数放到库里,供别人使用的一种方式。方法是把一些常用到的函数编完放到一个文件里,供不同的人进行调用。调用的时候把它所在的文件名用#include<>加到里面就可以了。

    一个函数库应至少包含两个文件:头文件(扩展名为*.h*)和源代码文件(扩展名为*.cpp*)。头文件包含函数库的声明,即函数库的功能说明列表;源代码文件包含函数库的实际实现。

    所以说白了,库就是一些封装好的函数,使用时直接调用就行。

    二、Arduino包含的库

    Arduino包含两种库:标准库和第三方库,当然也可以自己写类库。标准库安装Arduino IDE后就已经导入,只需要直接调用就行,第三方类库则需要导入,如果没有导入编译器就会报错,至于如何导入请看参照:三、第三方类库导入方法。

    1、标准库

    EEPROM- 对“永久存储器”进行读和写

    Ethernet- 用于通过 Arduino 以太网扩展板连接到互联网

    Firmata- 与电脑上应用程序通信的标准串行协议。

    LiquidCrystal- 控制液晶显示屏(LCD)

    SD- 对 SD 卡进行读写操作

    Servo- 控制伺服电机

    SPI- 与使用的串行外设接口(SPI)总线的设备进行通信

    SoftwareSerial- 使用任何数字引脚进行串行通信

    Stepper- 控制步进电机

    WiFi- 用于通过 Aduino 的 WiFi 扩展板连接到互联网

    Wire- 双总线接口(TWI/I2C)通过网络对设备或者传感器发送和接收数据。

    PWM Frequency Library- 自定义PWM频率

    2、第三方类库

    IRremote-红外控制

    DS3231-时钟芯片

    Timer- 利用millis()函数来模拟多线程等等

    三、第三方类库导入方法

    1、打开IDE-->程序-->导入库-->Add Library

    导入库

    2、然后选择准备库文件的压缩包(因为没有准备为了演示效果就随便找了个压缩包)

    选择要导入库压缩包

    3、导入成功后就可以在IDE上直接查看到与库相关的例子

    例子

    4、这样一个流程下来是不是感觉很繁琐,偷偷告诉你一个简单粗暴地方法——直接将压缩包解压到IDE安装路径下的libraries文件夹,然后直接打开IDE就行了!

    注意:如果IDE之前就已经打开要先关闭再打开,否则无法导入成功

    四、谈谈对Arduino库看法

    看过《每天一点单片机知识系列之步进电机控制》的童鞋会发现,从直观上看,实现同样的功能调用库文件和不调用库文件,在代码量上就有很大差别。从深层次上看,代码也更加复杂,而且编程的时候更容易出错,后期对代码维护难度也更大。还有一点忘了说了,即使没有在代码中调用任何库,编译器也会调用Arduino.h库。

    有面向对象编程经验的童鞋这时候可能会把库文件与类联系在一起,类是封装好的直接调用就行,类的继承或是重写就可以实现要达到的功能。要是玩过51单片机,你就更会感叹Arduino设计者的厉害之处。Arduino最强大之处就是从最底层开始将很多单片机操作抽象成一个个函数,然后封装成库的形式,编程时只需要调用库,再简单的调用函数就可以,不需要考虑一个个寄存器是如何工作的。

    所以只要有合适的库即使没有硬件知识,同样可以玩转Arduino单片机。

    参考源:

    1.Arduino官方网站

    2.Arduino中文社区

    极客工坊知识库

    相关文章

      网友评论

        本文标题:Arduino库

        本文链接:https://www.haomeiwen.com/subject/ffuhbttx.html