Arduino软件开发手册 - jimaobian/DFRobotWikiCn GitHub Wiki

程序结构

在Arduino中, 标准的程序入口main函数在内部被定义, 用户只需要关心以下两个函数:

  • void setup()
  • void loop()

setup() 函数用于初始化, loop() 函数用于循环执行. 初始化函数一般放在程序开头, 用于设置一些引脚的输出/输入模式, 初始化串口通讯等工作. loop() 函数中的代码将被循环执行, 例如: 读入引脚状态, 设置引脚输出状态等. 示例:

int buttonPin = 3;

void setup()
{
  Serial.begin(9600); //初始化串口
  pinMode(buttonPin, INPUT); //设置3号引脚为输入模式
}

void loop()
{
  // 循环执行的代码
}

控制语句

====if (条件) 和 ==, !=, <, > (比较运算符)====

if,用于与比较运算符结合使用,测试是否已达到某些条件,例如一个输入数据在某个范围之外。使用格式如下:

if (value > 50)
{
  // 这里加入你的代码
}

该程序测试value是否大于50。如果是,程序将执行特定的动作。换句话说,如果圆括号中的语句为真,大括号中的语句就会执行。如果不是,程序将跳过这段代码。大括号可以被省略,如果这么做,下一行(以分号结尾)将成为唯一的条件语句。


if (x > 120) digitalWrite(LEDpin, HIGH);

if (x > 120)
digitalWrite(LEDpin, HIGH);

if (x > 120){ digitalWrite(LEDpin, HIGH); }

if (x > 120){
  digitalWrite(LEDpin1, HIGH);
  digitalWrite(LEDpin2, HIGH);
}                                 // 都是正确的

圆括号中要被计算的语句需要一个或多个操作符。

if...else

for

switch

while

do...while

break

continue

return

goto

相关语法

; (分号)

(大括号)

// (单行注释)

/* * / (多行注释)

#define

#include

算术运算符

===== (赋值)====

+ (加)

- (减)

* (乘)

/ (除)

% (取模)

比较运算符

====== (等于)==== ====!= (不等于)====

< (小于)

> (大于)

====<= (小于等于)==== ====>= (大于等于)====

布尔运算符

&& (逻辑与)

|| (逻辑或)

! (逻辑非)

指针运算符

* 指针运算符

& 地址运算符

位运算

& (位与)

| (位或)

^ (位异或)

~ (位非)

<< (左移)

>> (右移)

端口操作

复合运算符

=

++ (自加)

-- (自减)

====+= (复合加)==== ====-= (复合减)==== ====*= (复合乘)==== ====/= (复合除)==== ====&= (复合与)==== ====|= (复合或)====

变量

常量

HIGH | LOW

INPUT | OUTPUT

true | false

整数常量

浮点数常量

数据类型

void(无类型)

boolean(布尔型)

char(字符型)

unsigned char(无符号字符型)

byte(字节型)

int(整型)

unsigned int(无符号整型)

long(长整型)

unsigned long(无符号长整型)

float(单精度)

double(双精度)

string(字符串)

array(数组)

数据类型转换

char()

byte()

int()

word()

long()

float()

变量作用域&修饰符

变量作用域

static (静态变量)

volatile (易变变量)

const (不可改变变量)

辅助工具

sizeof() (sizeof运算符)

ASCII码表

基本函数

数字I/O

pinMode(pin, mode)

digitalWrite(pin, value)

digitalRead(pin)

模拟I/O

analogReference(type)

analogRead(pin)

analogWrite(pin, value) - PWM

高级I/O

shiftOut(dataPin, clockPin, bitOrder, val)

pulseIn(pin, state, timeout)

时间

millis()

delay(ms)

delayMicroseconds(us)

数学库

min(x, y)

max(x, y)

abs(x)

constrain(x, a, b)

map(x, in_min, in_max, out_min, out_max)

pow(base, exponent)

sqrt(x)

三角函数

sin(rad)

cos(rad)

tan(rad)

随机数

randomSeed(seed)

random(howbig)

random(howsmall, howbig)

位操作

lowByte()

highByte()

bitRead()

bitWrite()

bitSet()

bitClear()

bit()

设置中断函数

attachInterrupt(interrupt, function, mode)

detachInterrupt(interrupt)

interrupts()

noInterrupts()

串口通讯

Serial.begin(speed)

Serial.available()

Serial.read()

Serial.flush()

Serial.print(data)

Serial.println(data)

⚠️ **GitHub.com Fallback** ⚠️