arduino每天一点单片机知识我爱编程

Arduino库

2017-01-09  本文已影响1109人  iotboy

一、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中文社区

极客工坊知识库

上一篇下一篇

猜你喜欢

热点阅读