Arduino中Wire类库介绍

对于iic总线的使用,Arduino IDE自带了一个第三方库Wrie。下面介绍Wrie成员函数。

1、begin()

功能:初始化iic连接,并作为主机或者从机设备加入iic总线。

语法:

        begin(address) 

        当没有填写参数时,设备会以主机模式加人IIC总线;

        当填写了参数时,设备会以从机模式加入IIC总线,address可以设置为0~127中的任意地址。

begin()
begin(address)	// 当没有填写参数时,设备会以主机模式加人IIC总线;当填写了参数时,设备会以从机模式加入IIC总线,address可以设置为0~127中的任意地址。

参数:address,一个7位的从机地址。如果没有该参数,设备将以主机形式加入iic总线

返回值:无。

2、requestFrom()

功能:

        主机向从机发送数据请求信号。使用 requestFrom() 后,从机端可以使用 onRequest() 注册一个事件用以响应主机的请求;        

        主机可以通过available() 和 read() 函数读取这些数据。

语法:

        Wire.requestFrom(address, quantity)

        Wire.requestFrom(address, quantity, stop)

参数:
        address,设备的地址。
        quantity,请求的字节数。
        stop,boolean型值,当其值为true时,将发送一个停止信息,释放IIC总线;

        当为false时,将发送一个重新开始信息,并继续保持IIC总线的有效连接。

返回值:无。

3、beginTransmission()

功能:

        设定传输数据到指定地址的从机设备。随后可以使用 write() 函数发送数据,并搭配endTransmission()函数结束数据传输。
语法:

        wire.beginTransmission(address)
参数:address,要发送的从机的7位地址。
返回值:无。

4、endTransmission( )

功能:结束数据传输。
语法:
Wire.endTransmission() 
Wire.endTransmission(stop)
参数:
        stop, boolean型值,当其值为true时将发送一一个停止信息,释放IIC总线,当没有填写stop参数时,等效使用true;当为false时,将发送一个重新开始信息,并继续保持IIC总线的有效连接。
返回值:

        byte型值,表示本次传输的状态,取值为:0,成功;1,数据过长,超出发送缓冲区;2,在地址发送时接收到NACK信号,3,在数据发送时接收到NACK信号;4,其他错误。

5、write()

功能:

        当为主机状态时,主机将要发送的数据加入发送队列;当为从机状态时,从机发送数据至发起请求的主机。
语法:
        Wire.write(value)
        Wire.write(string)
        Wire.write(data, length)
参数:
        value,以单字节发送。
        string,以一系列字节发送。
        data,以字节形式发送数组。
l        ength,传输的字节数。
返回值:byte型值,返回输入的字节数。

6、available( )

功能:

        返回接收到的字节数。在主机中,一般用于主机发送数据请求后;在从机中,一般用于数据接收事件中。

语法:Wire. available()

参数:无。

返回值:可读字节数。

7、read( )

功能:

        读取1B的数据。在主机中,当使用 requestFrom() 函数发送数据请求信号后,需要使用 read() 函数来获取数据;在从机中需要使用该函数读取主机发送来的数据。

语法:Wire.read()

参数:无。

返回值:读到的字节数据。

8、onReceive( )

功能:该函数可在从机端注册一个事件,当从机收到主机发送的数据时即被触发。
语法:Wire.onReceive(handler)
参数:
        handler,当从机接收到数据时可被触发的事件。该事件带有一个int型参数(从主机读到的字节数)且没有返回值,如 void myHandler(int numBytes) 。
返回值:无。
9、 onRequest()

功能:注册一个事件,当从机接收到主机的数据请求时即被触发。
语法:Wire.onRequest(handler)
参数:
        handler,可被触发的事件。该事件不带参数和返回值,如 voidmyHandler() 。
返回值:无。

  • 14
    点赞
  • 64
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值