专栏文章
Arduino C++内置函数详解
算法·理论参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mipebow4
- 此快照首次捕获于
- 2025/12/03 10:36 3 个月前
- 此快照最后确认于
- 2025/12/03 10:36 3 个月前
1. 基础 I/O 函数(Arduino 特有)
-
CPP
pinMode(pin, mode)
设置引脚模式(INPUT,OUTPUT,INPUT_PULLUP)。pinMode(13, OUTPUT); // 将13号引脚设为输出 -
CPP
digitalWrite(pin, value)
向数字引脚写入高(HIGH)或低(LOW)电平。digitalWrite(13, HIGH); // 点亮LED -
CPP
digitalRead(pin)
读取数字引脚的电平状态。int val = digitalRead(2); // 读取2号引脚状态 -
CPP
analogRead(pin)
读取模拟引脚的值(0-1023)。int sensorValue = analogRead(A0); // 读取A0引脚 -
CPP
analogWrite(pin, value)
输出 PWM 信号(0-255),支持 PWM 引脚。analogWrite(9, 128); // 50%占空比
2. 时间控制(Arduino 特有)
-
CPP
delay(ms)
阻塞延时(毫秒)。delay(1000); // 等待1秒 -
CPP
delayMicroseconds(us)
微秒级延时。delayMicroseconds(500); // 500微秒 -
CPP
millis()
返回系统运行时间(毫秒),非阻塞。unsigned long time = millis(); -
CPP
micros()
返回系统运行时间(微秒)。unsigned long time = micros();
3. 数学与数据处理
-
标准 C/C++ 函数(需包含
<math.h>)abs(x): 绝对值min(a, b),max(a, b): 最小/最大值pow(base, exp): 幂运算sqrt(x): 平方根sin(x),cos(x),tan(x): 三角函数(弧度)
-
Arduino 特有函数
map(value, fromLow, fromHigh, toLow, toHigh)
线性映射数值范围。 CPPint mapped = map(analogRead(A0), 0, 1023, 0, 255);constrain(value, min, max)
限制数值在范围内。 CPPint limited = constrain(sensorValue, 0, 100);random(min, max)/randomSeed(seed)
生成伪随机数。 CPPrandomSeed(analogRead(A0)); // 随机种子 int num = random(1, 100); // 1到99的随机数
4. 串口通信(Arduino 特有,需 Serial 对象)
-
CPP
Serial.begin(baudrate)
初始化串口。Serial.begin(9600); -
CPP
Serial.print(data)/Serial.println(data)
发送数据到串口。Serial.print("Sensor: "); Serial.println(sensorValue); -
CPP
Serial.read()
读取串口数据。if (Serial.available()) { char c = Serial.read(); }
5. 中断函数(Arduino 特有)
-
CPP
attachInterrupt(digitalPin, ISR, mode)
绑定中断服务函数。
mode:RISING,FALLING,CHANGE,LOW。attachInterrupt(0, buttonPress, RISING); -
detachInterrupt(digitalPin)
禁用中断。
6. 存储器操作
- EEPROM 操作(需
#include <EEPROM.h>)EEPROM.read(address)EEPROM.write(address, value)EEPROM.put(address, data)/EEPROM.get(address, data)(存储结构体)
7. 字符串处理
- 标准 C/C++ 函数(需
<string.h>)strcpy(),strcat(): 字符串复制、拼接strlen(): 字符串长度
- Arduino
String类
支持动态字符串操作: CPPString msg = "Hello"; msg += " World!";
8. 其他实用函数
-
CPP
tone(pin, frequency)/noTone(pin)
生成指定频率的方波(驱动蜂鸣器)。tone(8, 1000); // 1kHz 声音 delay(1000); noTone(8); -
CPP
pulseIn(pin, state)
测量引脚脉冲持续时间。long duration = pulseIn(2, HIGH); // 高电平脉冲时长
总结
- Arduino 特有函数:主要用于硬件交互(如
digitalWrite()、analogRead())、时间控制(millis())和通信(Serial)。 - 标准 C/C++ 函数:数学运算、字符串处理等,需包含对应头文件(如
<math.h>、<string.h>)。
使用时需注意 Arduino 的内存限制(如避免动态内存分配),并优先使用非阻塞函数(如
millis() 替代 delay())以提高效率。相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...