arduino编程参考手册
### Arduino编程参考手册知识点详解 #### 一、程序结构 Arduino程序主要由两部分组成:`setup()` 和 `loop()`。 - **`setup()`**:这部分代码只运行一次,在程序开始时执行。通常用于初始化设备,如设置引脚模式、初始化串口通信等。 - **`loop()`**:这部分代码会无限循环执行。在这里编写你的主要程序逻辑。 #### 二、控制语句 控制语句用于决定程序的执行路径,主要包括以下几种: - **`if`**:如果指定条件为真,则执行代码块。 - **`if-else`**:如果第一个条件为真,则执行第一个代码块;否则执行另一个代码块。 - **`for`**:循环一定次数的代码块。 - **`switch-case`**:根据不同的条件执行不同的代码块。 - **`while`**:只要条件为真就一直执行代码块。 - **`do-while`**:至少执行一次代码块,然后在每次循环后检查条件。 - **`break`**:立即退出循环。 - **`continue`**:跳过当前循环中的剩余部分,继续下一次迭代。 - **`return`**:从函数返回一个值。 - **`goto`**:无条件地跳转到标号定义的位置。 #### 三、相关语法 这些是编写Arduino程序时的基本元素。 - **分号**:用来结束语句。 - **大括号**:用来定义代码块的范围。 - **注释**: - 单行注释:使用 `//`。 - 多行注释:使用 `/* */`。 - **宏定义**:使用 `#define` 定义常量。 - **文件包含**:使用 `#include` 引入其他文件。 #### 四、算术运算符 用于进行数值计算。 - **赋值**:`=` - **加法**:`+` - **减法**:`-` - **乘法**:`*` - **除法**:`/` - **取模**:`%` #### 五、比较运算符 用于比较两个值。 - **等于**:`==` - **不等于**:`!=` - **小于**:`<` - **大于**:`>` - **小于等于**:`<=` - **大于等于**:`>=` #### 六、布尔运算符 用于组合逻辑条件。 - **逻辑与**:`&&` - **逻辑或**:`||` - **逻辑非**:`!` #### 七、位运算 用于对二进制位进行操作。 - **位与**:`&` - **位或**:`|` - **位异或**:`^` - **位非**:`~` - **左移**:`<<` - **右移**:`>>` #### 八、复合运算符 这些运算符可以简化表达式。 - **加赋值**:`+=` - **减赋值**:`-=` - **乘赋值**:`*=` - **除赋值**:`/=` - **取模赋值**:`%=` - **位与赋值**:`&=` - **位或赋值**:`|=` - **位异或赋值**:`^=` - **左移赋值**:`<<=` - **右移赋值**:`>>=` #### 九、变量 存储数据的基本单元。 - **常量**:使用 `#define` 或 `const` 定义。 - **宏定义**:通过 `#define` 定义常量或函数。 - **整型常量**:例如 `123`。 - **浮点数常量**:例如 `123.45`。 - **数据类型**:包括 `void`, `boolean`, `char`, `unsigned char`, `byte`, `int`, `unsigned int`, `word`, `long`, `unsigned long`, `float`, `double`, `string`, `String`, `array` 等。 #### 十、数据类型转换 用于将一种数据类型转换成另一种。 - **`char()`** - **`byte()`** - **`int()`** - **`word()`** - **`long()`** - **`float()`** #### 十一、变量作用域与修饰符 控制变量的可见性和生命周期。 - **变量作用域**:定义了变量的有效范围。 - **`static`**:定义静态变量,该变量在整个程序期间都存在。 - **`volatile`**:定义易变变量,用于表示可能被外部硬件修改的变量。 - **`const`**:定义不可改变的变量。 #### 十二、辅助工具 提供额外的功能支持。 - **`sizeof()`**:获取数据类型的大小(字节数)。 - **ASCII码表**:提供了ASCII字符集的映射关系。 #### 十三、基本函数 提供了基本的操作功能。 - **数字I/O**: - **`pinMode()`**:设置引脚模式。 - **`digitalWrite()`**:向数字引脚写入数据。 - **`digitalRead()`**:从数字引脚读取数据。 - **模拟I/O**: - **`analogReference()`**:设置模拟输入参考电压。 - **`analogRead()`**:读取模拟引脚的电压。 - **`analogWrite()`**:模拟输出。 - **高级I/O**: - **`shiftOut()`**:将数据移出。 - **`pulseIn()`**:测量脉冲长度。 - **时间**: - **`millis()`**:返回自上电或重置以来的时间(毫秒)。 - **`delay(ms)`**:延时指定的毫秒数。 - **`delayMicroseconds(us)`**:延时指定的微秒数。 #### 十四、数学库 提供了数学运算功能。 - **`min()`**:最小值。 - **`max()`**:最大值。 - **`abs()`**:绝对值。 - **`constrain()`**:限制数值。 - **`map()`**:映射数值。 - **`pow()`**:幂运算。 - **`sqrt()`**:平方根。 - **三角函数**: - **`sin()`**:正弦值。 - **`cos()`**:余弦值。 - **`tan()`**:正切值。 - **随机数**: - **`randomSeed()`**:设置随机数生成器的种子。 - **`random()`**:生成随机数。 #### 十五、位操作 提供了对位进行操作的功能。 - **`attachInterrupt()`**:设置中断。 - **`detachInterrupt()`**:取消中断。 - **`interrupts()`**:启用中断。 - **`noInterrupts()`**:禁用中断。 #### 十六、串口通讯 用于实现设备间的串行通信。 - **`begin()`**:初始化串口通信。 - **`available()`**:检查是否有可用的数据。 - **`read()`**:从串口读取数据。 - **`flush()`**:清除串口缓冲区。 - **`print()`**:打印数据到串口。 - **`println()`**:打印数据并换行。 - **`write()`**:写入数据到串口。 - **`peek()`**:查看下一个待读取的字节。 - **`serialEvent()`**:处理串口事件。
剩余79页未读,继续阅读
- daw12132017-07-18不错,很详细的免费资料
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 35 财务汇报部门历年薪酬统计图表.xlsx
- 39 财务工资发放表.xlsx
- 37 财务工资支出上半年年中总结报告.xlsx
- 38 财务分析工资年度开支表.xlsx
- 41 财务公司部门工资开支分析表.xlsx
- 40 财务分析部门工资支出图表.xlsx
- 42 部门员工工资统计表.xlsx
- 45 年度薪酬费用统计表.xlsx
- 44 人事薪酬管理台账.xlsx
- 48 工资对比分析报表模板.xls
- 47 可视化工资表自动统计1.xlsx
- 46 企业员工工资支出预算表.xlsx
- 43 工资收入对比分析表.xlsx
- 50 薪资分析图表.xlsx
- 49 薪酬数据统计分析报表excel模板.xlsx
- 年度公司薪酬调查分析方案(完整版).docx