Arduino语法-指高级I/O
函数列表
- shiftOut()
- pulseIn()
shiftOut()函数说明
void shiftOut (uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder, byte val)
位移输出函数
输入value数据后Arduino会自动把数据移动分配到8个并行输出端. 其中dataPin为连接DS的引脚号, clockPin为连接SH_CP的引脚号, bitOrder为设置数据位移顺序, 分别为高位先入MSBFIRST或者低位先入LSBFIRST.
参数:
dataPin 数据引脚
clockPin 时钟引脚
bitOrder 移位顺序 ( MSBFIRST 或 LSBFIRST)
val 数据
示例:
// Do this for MSBFIRST serial
int data = 500;
// shift out highbyte
shiftOut(dataPin, clock, MSBFIRST, (data >> 8));
// shift out lowbyte
shiftOut(dataPin, clock, MSBFIRST, data);
// Or do this for LSBFIRST serial
data = 500;
// shift out lowbyte
shiftOut(dataPin, clock, LSBFIRST, data);
// shift out highbyte
shiftOut(dataPin, clock, LSBFIRST, (data >> 8));
pulseIn()函数说明
unsigned long pulseIn (uint8_t pin, uint8_t state, unsigned long timeout)
读脉冲
读引脚的脉冲, 脉冲可以是 HIGH 或 LOW. 如果是 HIGH, 函数将先等引脚变为高电平, 然后 开始计时, 一直到变为低电平为止. 返回脉冲持续的时间长短, 单位为微秒. 如果超时还没有 读到的话, 将返回0.
参数:
pin 引脚编号
state 脉冲状态
timeout 超时时间(us)
下面的例子演示了统计高电平的继续时间:
int pin = 7;
unsigned long duration;
void setup()
{
pinMode(pin, INPUT);
}
void loop()
{
duration = pulseIn(pin, HIGH);
}
获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号