总结一下常用的arduino语法
详细内容请参考:http://arduino.cc/en/Reference/HomePage
首先Arduino机构由两个部分组成:
- void setup()
- void loop()
void setup()
Arduino控制器通电或复位后,即会开始执行setup() 函数中的程序,该部分只会执行一次。
通常我们会在setup() 函数中完成Arduino的初始化设置,如配置I/O口状态、配置串口、引入类库文件等
void loop()
在setup() 函数中的程序执行完后,Arduino会接着执行loop() 函数中的程序。而loop()函数是一个死循环,其中的程序会不断的重复运行。
通常我们会在loop() 函数中完成程序的主要功能,如驱动各种模块,采集数据等。
标点符号
- ;(分号)
Arduino每条指令(代码行)都以分号结束。甚至可以将两条指令放在同一行,只要你用一个分号把它们隔开就行了。 - {}(大括号)
用来区分几个不同的结构 - //(单行注释)
这是Arduino程序编译中忽略的一部分,用来解释程序代码的功能。 - /* …*/(多行注释)
- #define(定义常量)
语法:
#define 常量名 常量值 ,注意:#是必须的。
例:#define ledPin 13
//在编译时,编译器将使用数值 13 取代任何用到 ledPin 的地方。不加分号结尾 - #include
用于调用程序以外的库。这使得程序能够访问大量标准C库,也能访问用于arduino的库。 AVR C库(Arduino基于AVR标准语法)。 注意:#include和#define一样,不能在结尾加分号
结构控制
-
if(条件判断语句)和 ==、!=、<、>(比较运算符)
if 语句与比较运算符一起用于检测某个条件是否达成(if后面括号内容),达成执行大括号里内容,否则跳过大括号中的语句
例
if (a > 0)
{
digitalWrite(LEDpin, HIGH); // 执行某些语句,如LEDpin为高电平
}
如果a的值大于0,LEDpin为高电平,否则直接跳过大括号 -
补充:比较运算操作符:
x == y(x 等于 y)注意这是等于,并不是赋值,赋值是=
x != y(x 不等于 y)
x < y(x 小于 y)
x > y(x 大于 y)
x <= y(x 小于等于 y)
x >= y(x 大于等于 y) -
if…else(进行多次条件判断)
例:
if (Input < 500)
{
// 执行A操作
}
else if (Input >= 1000)
{
// 执行B操作
}
else
{
// 执行C操作
} -
for
用于重复执行一段在花括号之内的代码。通常使用一个增量计数器计数并终止循环。for语句用于重复性的操作非常有效,通常与数组结合起来使用来操作数据、引脚
例如
for(int x = 2; x < 100; x = x * 1.5){//定义X为2,当X小于100的时候X重新赋值为它自己的1.5倍 println(x);//打印输出x的值 }
生成:2,3,4,6,9,13,19,28,42,63,94
-switch /case 语句
将变量值和case语句中设定的值进行比较。当一个case语句中的设定值与变量值相同时,这条case语句将被执行。
关键字break可用于退出switch语句,通常每条case语句都以break结尾。如果没有break语句,switch语句将会一直执行接下来的语句直到遇见一个break,或者直到switch语句结尾。
语法也是先switch然后跟括号()括号内写上变量值,后面跟大括号,大括号里写上case分支
例子
switch (var) {
case 1: //case 1后面是冒号
//当var等于1时,执行一些语句
break;
case 2
//当var等于2时,执行一些语句
break;
default:
//如果没有任何匹配,执行default
//default可有可不有
}