Arduino 语法手册函数部分
摘自:函数部分
数字 I/O
pinMode()
描述
将指定的引脚配置成输出或输入。详情请见digital pins。
语法
pinMode(pin, mode)
参数
pin:要设置模式的引脚
mode:INPUT或OUTPUT
返回
例子
ledPin = 13
语法
noTone(pin)
参数
pin: 所要停止产生声音的引脚
返回
shiftOut()
shiftOut()
描述
将一个数据的一个字节一位一位的移出。从最高有效位(最左边)或最低有效位(最右边)开始。依次向数据脚写入每一位,之后时钟脚被拉高或拉低,指示刚才的数据有效。
注意:如果你所连接的设备时钟类型为上升沿,你要确定在调用shiftOut()前时钟脚为低电平,如调用digitalWrite(clockPin, LOW)。
注意:这是一个软件实现;Arduino提供了一个硬件实现的SPI库,它速度更快但只在特定脚有效。
语法
shiftOut(dataPin, clockPin, bitOrder, value)
参数
dataPin:输出每一位数据的引脚(int)
clockPin:时钟脚,当dataPin有值时此引脚电平变化(int)
bitOrder:输出位的顺序,最高位优先或最低位优先
value: 要移位输出的数据(byte)
返回
shiftIn()
描述
将一个数据的一个字节一位一位的移入。从最高有效位(最左边)或最低有效位(最右边)开始。对于每个位,先拉高时钟电平,再从数据传输线中读取一位,再将时钟线拉低。
注意:这是一个软件实现;Arduino提供了一个硬件实现的SPI库,它速度更快但只在特定脚有效。
语法
shiftIn(dataPin,clockPin,bitOrder)
参数
dataPin:输出每一位数据的引脚(int)
clockPin:时钟脚,当dataPin有值时此引脚电平变化(int)
bitOrder:输出位的顺序,最高位优先或最低位优先
返回
读取的值(byte)
pulseIn()
描述
读取一个引脚的脉冲(HIGH或LOW)。例如,如果value是HIGH,pulseIn()会等待引脚变
为HIGH,开始计时,再等待引脚变为LOW并停止计时。返回脉冲的长度,单位微秒。如果在指定的时间内无脉冲函数返回。
此函数的计时功能由经验决定,长时间的脉冲计时可能会出错。计时范围从10微秒至3分钟。(1秒=1000毫秒=1000000微秒)
语法
pulseIn(pin, value)
pulseIn(pin, value, timeout)
参数
pin:你要进行脉冲计时的引脚号(int)。
value:要读取的脉冲类型,HIGH或LOW(int)。
timeout (可选):指定脉冲计数的等待时间,单位为微秒,默认值是1秒(unsigned long)
返回
脉冲长度(微秒),如果等待超时返回0(unsigned long)
例子
int pin = 7;
unsigned long duration;
?
void setup()
{
  pinMode(pin, INPUT);
}
?
void loop()
{
duration = pulseIn(pin, HIGH);;
}
时间
millis()
描述
返回Arduino开发板从运行当前程序开始的毫秒数。这个数字将在约50天后溢出(归零)。
参数
返回
返回从运行当前程序开始的毫秒数(无符号长整数)。
例子
unsigned long time;
?
void setup(){
    (9600);
}
void loop(){
("Time:");
time = millis();
返回
注意事项
当中断函数发生时,delay()和millis()的数值将不会继续变化。当中断发生时,串口收到的数据可能会丢失。你应该声明一个变量来在未发生中断时储存变量。
使用中断
在单片机自动化程序中当突发事件发生时,中断是非常有用的,它可以帮助解决时序问题。一个使用中断的任务可能会读一个旋转编码器,监视用户的输入。
如果你想以确保程序始终抓住一个旋转编码器的脉冲,从来不缺少一个脉冲,它将使写一个程序做任何事情都要非常棘手,因为该计划将需要不断轮询的传感器线编码器,为了赶上脉冲发生时。其他传感器也是如此,如试图读取一个声音传感器正试图赶上一按,或红外线槽传感器(照片灭弧室),试图抓住一个硬币下降。在所有这些情况下,使用一个中断可以释放的微控制器来完成其他一些工作。
程序示例
int pin = 13;
volatile int state = LOW;
?
void setup()
{
  pinMode(pin, OUTPUT);
  attachInterrupt(0, blink, CHANGE);
}
?
void loop()
{
  digitalWrite(pin, state);
}
?
void blink()
{
  state = !state;
}
detachInterrupt()
detachInterrupt(interrupt)
描述
关闭给定的中断。
参数
interrupt: 中断禁用的数(0或者1).
开关中断
interrupts()
interrupts()(中断)
描述
重新启用中断(使用noInterrupts()命令后将被禁用)。中断允许一些重要任务在后台运行,默认状态是启用的。禁用中断后一些函数可能无法工作,并传入信息可能会被忽略。中断会稍微打乱代码的时间,但是在关键部分可以禁用中断。
参数
返回
例子
void setup() {
}
?
void loop()
{
  noInterrupts();
 
语法
对于所有的arduino板:
if (Serial)
Arduino Leonardo 特有:
if (Serial1)
Arduino Mega 特有:
if (Serial1)
if (Serial2)
if (Serial3)
参数
arduino字符串转数组
返回
布尔值:如果指定的串行端口是可用的,则返回true。如果查询Leonardo的USB CDC串行连接之前,它是准备好的,将只返回false。
例子
void setup() {
 
语法
(target)
参数
target : 要搜索的字符串(字符)
返回
布尔型
findUntil()
()
说明
()从串行缓冲区读取数据,直到到一个给定的长度或字符串终止位。
如果目标字符串被发现,该函数返回true,如果超时则返回false。
()继承了Stream类。
语法
(target, terminal)
参数
target : 要搜索的字符串(char) terminal : 在搜索中的字符串终止位 (char)
返回
布尔型
flush()
flush()
说明
等待超出的串行数据完成传输。(在及以上的版本中,flush()语句的功能不再是丢弃所有进入缓存器的串行数据。)
flush()继承了Stream类.
语法
()
仅 Arduino Mega 可以使用的语法:
()
()
()
参数
返回
parseFloat()
()
描述
()命令从串口缓冲区返回第一个有效的浮点数. Characters that are not digits (or the minus sign) are skipped. parseFloat() is terminated by the first character that is not a floating point number.
()继承了Stream类。
语法
()
参数
返回
float
parseInt()
parseInt()
说明
查传入的串行数据流中的下一个有效的整数。 parseInt()继承了Stream类。
语法
()
下面三个命令仅适用于Arduino Mega:
()
()
()
Parameters
返回
int : 下一个有效的整数
peek()
说明
返回传入的串行数据的下一个字节(字符),而不是进入内部串行缓冲器调取。也就是说,连续调用 peek()将返回相同的字符,与调用read()方法相同。peek()继承自 Stream类。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。