趣文网 > 作文大全

Arduino教程┃5分钟快速了解OneWire库

2020-11-17 10:20:01
相关推荐

OneWire库不属于Arduino的基本库,请到Arduino官网下载,或者使用Arduino IDE 1.8.9的“库管理器”下载(详见:Arduino教程┃1招轻松搞定Arduino扩展库下载)。使用后者下载的库文件在Arduino项目文件夹的Libraries文件夹里。在OneWire库中定义了一个OneWire类,下面我将带你从类定义、构造函数、reset()、write_bit()、read_bit()、write()、read()、select()、skip()等各类函数快速了解它。

1、下载OneWire库文件

图1 使用库管理器下载Onewire库文件

如图1所示,点击“工具”→“管理库”,打开“库管理器”,在里面输入关键词:onewire,找到以后选择库文件版本,点击“安装”,安装成功之后,点击“项目”→“加载库”,在“贡献库”中点击OneWire,完成加载。

安装成功的库文件在Arduino项目文件夹→“libraries"文件夹中,在“OneWire”文件夹中可以找到所有库文件(包含示例文件),如图2所示。

图2 OneWire库文件列表

2、认识OneWire类

打开图2列表中的“OneWire.h”文件,找到“class OneWire”关键词,这部分就是OneWire类(图3)。

图3 OneWire类

3、OneWire构造函数

OneWire类的构造函数用于指定Arduino应用于单总线的引脚。

参数pin:表示应用于单总线的引脚。

构造函数原型如下,在OneWire.cpp中查看:

图4 构造函数原型

4、OneWire的reset()函数

reset函数的作用是初始化单总线。

(1)返回值:uint8类型,表示初始化结构。返回1则表示单总线上有从机设备,且准备就绪;否则返回0。

(2)参数:无。

(3)函数原型:

图5 reset()函数原型

5、OneWire的write_bit()函数

write_bit函数的功能是写时隙,即写1或写0。

(1)返回值:无。

(2)参数v:写入的数据。参数的bit0为0则为写0,bitl则为写1。

(3)函数原型:

图6 write_bit函数原型

6、OneWire的read_bit()函数

read_bit函数的功能是读时隙,即读l或读0。

(1)返回值:uint8类型,表示读出的数据。

(2)参数:无。

(3)函数原型:

图7 read_bit()函数原型

7、OneWire的write()函数

write函数的功能是发送1byte的数据。

(1)返回值:无。

(2)参数v:表示要发送的数据;power:可选参数,默认值为0。该参数表示在空闲状态引脚是否置高。若参数值为0则空闲状态为漏级或集电极开路;若为1则表示空闲状态引脚置高,以保证寄生性单总线器件的正常工作。

(3)函数原型:

图8 write函数原型

8、OneWire的read()函数

read函数的功能是读取1byte的数据。

(1)返回值:uint8类型,表示读出的数据。

(2)参数:无。

(3)函数原型:

图9 read函数原型

9、OneWire的select()函数

select函数的作用是让主机指定某一个从机。

(1)返回值:无。

(2)参数:rom[8]:表示将指定从机的8byte的ROM数据。

(3)函数原型:

图10 select函数原型

10、OneWire的skip()函数

skip函数的作用是执行跳跃ROM指令。

(1)返回值:无。

(2)参数:无。

(3)函数原型:

图11 skip函数原型

11、OneWire的其他函数

除上述函数之外,还有例如reset_search()、target_search()、search()等函数,更多功能及使用方法请打开OneWire.cpp阅读,这里不再介绍。

小结

OneWire库是针对单总线推出的扩展库,了解并掌握其使用方法对于Arduino的学习非常重要。

单总线(One-Wire)是Dallas公司的一项特有的总线技术,它采用单根信号线实现数据的双向传输,具有节省I/O口资源、结构简单、便于扩展和维护等优点。One-Wire适用于单个主机的系统,能够控制一个或多个从机设备。

初始化工作室专注于Arduino、Scratch、乐高的学习以及“STEM+”课程的实施,如果你觉得这篇文章对你有帮助,请“关注”我并且点个赞呗,非常感谢。

阅读剩余内容
网友评论
相关内容
延伸阅读
小编推荐

大家都在看

争做好少年作文 生活需要微笑作文 什么使我快乐作文 保护地球的英语作文 什么让我着迷作文 mytrip作文 成长作文500字初中 看电影作文400字 哥哥打屁股作文 学打羽毛球作文 含泪的微笑作文 埋下一颗种子作文 最熟悉的陌生人作文 课间10分钟作文 厦门植物园作文 把握当下作文 香港迪士尼作文 中秋有感作文 辞旧迎新的作文 什么温暖了我作文 成长需要挫折作文 生活需要勇气作文 我渴望成功作文 描写汤圆的作文 我眼中的色彩作文 写妈妈的作文600字 三年级写景作文300字 坚持的作文400字 快乐的春游作文 初一优秀作文500字