- 创客机器人实战:基于Arduino和树莓派
- 何福贵等编著
- 454字
- 2021-04-05 03:19:53
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引脚接脉冲,代码如下: