Arduino库函数中文说明
#define 常量名 常量值
% 取模运算符
String abc / char abc[n] 定义字符串
pinMode(pin,mode); 用于引脚的初始化 mode包括 INPUT/OUTPUT/INPUT_PULLUP
Arduino 数模转换器有 10位精度,可以将0-5V转换为 0-1023,仅用于analogRead(pin) analogWrite(n) 写的并不是真正的模拟信号,而是占空比不同的方波:电压=占空比×5V,n∈(0,255),PWM(脉冲宽度调制)波 millis()/micros() 获取系统通电或复位后的运行时间,单位是毫秒/微秒 当引脚悬空时,其电压值处于不定状态,故要根据电压值进行其他操作时应避免悬空
tone(pin,frequency,duration) 占空比为定值50%, duration默认无穷大,若无duration,则应用noTone()来停止发声,注意:同一时间 tone()仅能作用于一个引脚 pulseIn(pin,value,timeout) 返回脉冲宽度,单位为微秒,timeout超时时间,默认为 1s 串口监视器中的停止符是在按下“发送”后系统自动发动的
外部中断
LOW/CHANGE/RISING/FALLING 低电平/变电平/上升沿/下降沿触发attachInterrupt(中断编号,中断函数名(返回void),中断模式) 初始化中断引脚
detachInterrupt(中断编号) 禁用外部中断
编写library
- #if ARDUINO >= 100 //版本兼容设置
- #include"Arduino.h"
- #else
- #include"WProgram.h"
- #endif
- class XXX{ //声明类
- private:
- public:
- }
- #ifndef XXX_H //条件编译命令,判断XXX_H是不是已经存在
- #define XXX_H
- .
- .
- .
- #endif
- #include"XXX.H" //编写cpp文件,注意应加上版本兼容语句
- XXX::XXX()
- 返回类型 XXX::other_func()
- func_name1 KEYWORD1 //关键字高亮显示
- func_name2 KEYWORD2
复制代码
硬件串口(UART)通信
两个设备TX与RX交叉连接,GND相连
在MEGA上USB口是和引脚 0,1连在一块的
Serial.available() 返回串口接收缓冲区的字节数
Serial.begin(speed,config) 初始化串口,speed波特率,config数据、校验、停止位
Serial.end() 释放串口通信引脚,使其作为普通引脚
Serial.find(target) 在缓冲区中搜索target,找到返回 true,否则返回false
Serial.findUntil(target,terminal) 搜索target直至terminal,无返回值
Serial.flush() 等待正在发送的数据发送完成
Serial.peek() 返回但不删除一字节数据
Serial.print(value,format) 以ASCII码格式输出数据
Serial.read() 读取并删除一字节数据
Serial.readBytes(buffer,length) 读取 length长度的数据并存入 buffer
Serial.readBytesUntil(character,buffer,length)
Serial.setTimeout(time) 设置超时(等待串口数据)时间,与前两个函数配合使用
Serial.write(val/str/(buf,len)) 以字节形式输出数据到串口,返回输出的字节数
ps:对于MEGA,Serial 包括Serial,Serial1,Serial2,Serial3,Serial4
String += (char)Char 将Char添加到String后面
void serialEvent() 串口事件,在串口缓冲区有数据时触发,实际是运行在两次 loop之间
软件模拟串口通信
SoftwareSerial mySerial(rxPin.txPin) 构造函数,创建一个软串口
mySerial.listen() 开启软串口监视状态,一个时刻只能监视一个软串口
mySerial.isListening() 判断是不是处在监视状态
mySerial.overflow() 检测缓冲区是不是已经溢出
其他函数和硬串口一样
IIC总线与Wire类库函数
Wire.begin(none/address) 以主机/从机模式加入IIC 总线
Wire.requestFrom(address,quantity,stop)主机向从机发送数据请求, stop:true 释放 IIC
Wire.beginTransmission(address) 告诉某从机主机要向它发送数据
Wire.endTransmission(none/stop) 告诉从机数据发送完毕,stop:true释放IIC
Wire.write(value/string/(date,length)) 主机从机间发送数据
Wire.available() 返回缓冲区的字节数
Wire.read() 从机或主机从缓冲区中读取数据
Wire.onReceive(myHandler1) 从机的函数,主机endTransmission后myHandler1被触发
Wire.onRequest(myHandler2) 从机的函数,主机requestFrom后myHandler2 被触发
其中:void myHandler1(int numBytes) void myHandler2() numBytes:主机发送的字节数
SPI总线与SPI类库函数
SPI.begin() 初始化SPI通信
SPI.end() 关闭SPI 通信
SPI.transfer(val) val要发送的字节数据,返回读到的字节数据
shiftOut(datePin,clockPin,bitOrder,value) IDE自带函数,模拟SPI串行输出,无返回
shiftIn(datePin,clockPin,bitOrder) IDE自带函数,模拟 SPI串行输入,返回输入数据
EEPROM类库
EEPROM.write(address,value) 对指定地址写入数据,无返回值
EEPROM.read(address) 从指定地址读数据,若无数据,则读出255
union date 共用体类型,将大于1B的数据存到 EEPROM
{ 此例将float数据存到EEPROM中
float a; 读写的时候是对c.b[ i]操作,输出或其他是对 c.a操作
byte b[4];
}
date c;
SD卡类库
对SD卡中的文件进行操作,用 SD类
对SD卡文件中的具体内容操作用 file类
SD.begin(csPin) csPin为输出模式,连到SD卡使能端,返回 true/false
SD.exists(filename) 判断某文件夹是否存在,返回true/false
SD.open(filename,mode) 打开某文件,mode:FILE_READ/FILE_WRITE,返回true/false
SD.remove(filename) 移除某文件夹,返回true/false
SD.mkdir(filename) 创建某文件夹,返回true/false
SD.rmdir(filename) 移除某空文件夹,返回true/false
file.available() 检查并返回当前文件中可读的字节数
file.close() 关闭某文件
file.peek() 读取当前字节,但并不移动到下一字节
file.position() 获取“光标”在当前文件中的位置
file.print(date,FORMAT) 以某格式输出数据到文件
file.seek(position) 将“光标”移到某一位置
file.size() 获取文件大小
file.read() 读取1B数据
file.write(date/(buf,len)) 写入数据到文件
以上file为一个File 类对象
定义一个File对象myFile,再用myFile = SD.open()打开文件,此文件就和myFile关联了
IRremote类库
IRrecv object(recvPin) 构造函数,创建一个红外接收头对象,recvPin连到接收头引脚
IRrecv.enableIRIn() 初始化红外解码
IRrecv.decode(&results) 检查是否收到编码,解码信息存入decode_results对象results
IRrecv.resume() 接收下一个编码
IRsend object() 创建 IRsend类对象
IRsend.sendNEC(data,nbits) 以NEC编码格式发送指定值
IRsend.sendRaw(buf,len,hz) 以原始编码格式发送信号
result.value 是接收到的编码数据
LiquidCrystal类库
LiquidCrystal(rs,(rw),enable,(d0,d1,d2,d3),d4,d5,d6,d7) 初始化LCD
lcd.begin(cols,rows) 设置显示器的宽度和高度
lcd.clear() 清屏,光标移到左上角
lcd.home() 光标复位到左上角
lcd.setCursor(col,row) 设置光标到指定位置
lcd.write(data) 输出一个字符到 LCD
lcd.print(data) 输出一串字符到 LCD,返回输出的字符数
lcd.(no)c/Cursor() 显示/隐藏光标
lcd.(no)b/Blink() 开启/关闭光标闪烁
lcd.(no)d/Display() 开启/关闭LCD显示功能
lcd.scrollDisplayLeft/Right() 向左/右滚屏
lcd.(no)a/Autoscroll() 开启/关闭自动滚屏
lcd.createChar(num,data) 创建自定义字符,num 自定义字符编号,data像素数据
Arduino库函数中文说明的更多相关文章
- 总线SPI的Arduino库函数
来源参考:https://www.cnblogs.com/MyAutomation/p/9348480.html 总线SPI的Arduino库函数 SPI基本知识 SPI:高速同步串行口.是一种标准的 ...
- OneWire总线的Arduino库函数
OneWire总线基本点 One-wire总线是DALLAS公司研制开发的一种协议,采用单根信号线,既传输时钟,又传输数据而且数据传输是双向的.它具有节省I/O 口线资源.结构简单.成本低廉.便于总线 ...
- I2C总线的Arduino库函数
I2C总线的Arduino库函数 I2C即Inter-Integrated Circuit串行总线的缩写,是PHILIPS公司推出的芯片间串行传输总线.它以1根串行数据线(SDA)和1根串行时钟线(S ...
- Arduino LiquidCrystal库函数中文对照
我之所以会试试看LCD+Shield,一是因为我本来就有这块板,但一直不会用,第二个原因则是Arduino+Cookbook这本书.O’Reilly的这本手册对你在Arduino实践中的各种问题(几乎 ...
- [Arduino] Leonardo 中文介绍
以下内容均翻译自arduino.cc,水平有限,如有错误请大家指正. 概述Arduino Leonardo是基于ATmega32u4一个微控制器板.它有20个数字输入/输出引脚(其中7个可用于PWM输 ...
- 进阶之路(基础篇) - 022 Arduino Leonardo 中文介绍(摘抄)
本文摘抄:http://www.arduino.cn/thread-1205-1-1.html 概述Arduino Leonardo是基于ATmega32u4一个微控制器板.它有20个数字输入/输出引 ...
- arduino库函数1
https://wenku.baidu.com/view/e657b1f0bcd126fff6050baf.html 的阅读笔记.现在到了 第四十页. setup应该是 在开始 执行一次. 然后 lo ...
- 步进电机的Arduino库函数
This library allows you to control unipolar or bipolar stepper motors. To use it you will need a ste ...
- 伺服电机的Arduino库函数
servo.attach(pin) //连接伺服电机的信号线于控制板的引脚,9或10号引脚servo.attach(pin, min, max) servo: a variable of type ...
随机推荐
- 设计模式学习(三): 装饰者模式 (附C#实现)
需求 做一个咖啡店的订单系统. 买咖啡时,可以要求加入各种调料,如奶,豆浆,摩卡等.咖啡店会根据调料的不同收取不同的费用.订单系统要考虑这些. 初版设计 然后下面就是所有的咖啡....: cost方法 ...
- 【Dijkstra堆优化】洛谷P2243电路维修
题目背景 Elf 是来自Gliese 星球的少女,由于偶然的原因漂流到了地球上.在她无依无靠的时候,善良的运输队员Mark 和James 收留了她.Elf 很感谢Mark和James,可是一直也没能给 ...
- python之 文件读与写
python 进行文件读写的函数是open 或filefile_handler = open(filename,,mode) 模式 描述r 以读方式打开文件,可读取文件信息.w 以写方式打开文件,可向 ...
- C# Main函数详解
2018-01-15 22:10:59 一.Main()方法的简介 1.唯一性.一般情况下,一个C#可执行程序只有一个Main函数,作为程序入口.但是在某些情况(如单元测试中),程序拥有多个Main ...
- STM32/GD32芯片信息
因为需要自动适配芯片进行系统配置,所以我们有必要通过读取一些系统寄存器来获取必要信息.我们的代码需要兼容STM32F1/GD32F1/STM32F0/STM32F4 代码如下: #ifdef STM3 ...
- mybatis动态sql排序无效
order by 字段,在用动态sql时会出现问题,排序无效,而且在日志里查询不到,不能发现这个错误. 通常,咱们的动态sql一般都会用#代替$,因为#可以防止sql注入问题. 但是在order by ...
- [翻译]在 .NET Core 中的并发编程
原文地址:http://www.dotnetcurry.com/dotnet/1360/concurrent-programming-dotnet-core 今天我们购买的每台电脑都有一个多核心的 C ...
- naturalWidth 与 naturalHeight
在HTML 5中,新增加了两个用来判断图片的宽度和高度的属性(图片原始大小),分别为 naturalWidth 和naturalHeight属性,例子如下: 注意问题: - 图片没有加载的时候 值为0 ...
- MATLAB命令大全+注释小结
一.常用对象操作:除了一般windows窗口的常用功能键外.1.!dir 可以查看当前工作目录的文件. !dir& 可以在dos状态下查看.2.who 可以查看当前工作空间变量名, ...
- PHPStorm+PHPStudy配置XDebug
img { max-width: 100% } 上一节里面从PHPStudy+PHPStorm的配置,到最后发布,PHPStorm只是承担了编辑器和发布站点的任务,但是还没有办法像Visual Stu ...