4.3 高级I/O

4.3.1 shiftOut(dataPin,clockPin,bitOrder,val)

shiftOut函数能够将数据通过串行的方式输出在引脚上,即一般意义上的同步串行通信,是控制器之间、控制器与传感器之间常用的一种通信方式。

shiftOut函数无返回值,有4个参数:dataPin、clockPin、bitOrder、val,下面具体说明。

dataPin:数据输出引脚,将逐次输出数据的每一位。引脚模式需要设置成输出。

clockPin:时钟输出引脚,提供时钟,引脚模式需要设置成输出。

bitOrder:数据位移顺序选择位,该参数为byte类型,有两种类型可选择,分别是高位先入MSBFIRST和低位先入LSBFIRST。

val:所要输出的数据值。

4.3.2 pulseIn(pin,state,timeout)

pulseIn函数用于引脚脉冲时间长度的读取,脉冲可以是HIGH或LOW。如果是HIGH,函数将先等引脚变为高电平,然后开始计时,一直到变为低电平为止。返回脉冲持续的时间长短,单位为毫秒(ms)。如果超时还没有读到的话,将返回0。

pulseIn函数返回值类型为无符号长整型(unsigned long),有3个参数:pin、state、timeout,下面介绍具体含义。

pin:读取脉冲的引脚。

value:读取的脉冲类型——HIGH或LOW。

timeout(可选):指定脉冲计数的等待时间,单位为微秒,默认值是1秒。

下面是一个脉冲计数器,Arduino开发板的2引脚接脉冲,代码如下: