Arduino库函数中文说明

摘要:
#define常量名常量值%取模运算符Stringabc/charabc[n]定义字符串pinMode(pin,mode);用于引脚的初始化mode包括INPUT/OUTPUT/INPUT_PULLUPArduino数模转换器有10位精度,可以将0-5V转换为0-1023,仅用于analogRead(pin)analogWrite(n)写的并不是真正的模拟信号,而是占空比不同的方波:电压=占空比×

#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

  1. #if ARDUINO >= 100 //版本兼容设置
  2. #include"Arduino.h"
  3. #else
  4. #include"WProgram.h"
  5. #endif
  6. class XXX{ //声明类
  7. private:
  8. public:
  9. }
  10. #ifndef XXX_H //条件编译命令,判断XXX_H是不是已经存在
  11. #define XXX_H
  12. .
  13. .
  14. .
  15. #endif
  16. #include"XXX.H" //编写cpp文件,注意应加上版本兼容语句
  17. XXX::XXX()
  18. 返回类型 XXX::other_func()
  19. func_name1KEYWORD1 //关键字高亮显示
  20. func_name2KEYWORD2
复制代码

硬件串口(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库函数中文说明》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Maven:版本管理 【SNAPSHOT】【Release】【maven-release-plugin】【nexus】cdn引入element-ui下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

嵌入式Linux学习笔记(五) 通讯协议制定和下位机代码实现

目录 (1).参考资料 (2).协议制定 (3).数据的处理 (4).下位机串口通讯实现 (5).代码     通讯协议可以理解为约束多设备通讯的一套规则,像Modbus,TCP/IP, BLE都是在生产生活常用的协议。不过协议落实到实际应用后,就可以理解为对数据的结构化处理,我之前写的串口点亮LED的实现就涉及了简单的协议制定,对于嵌入式Linux来说,...

用Tinkercad学arduino之 74HC595寄存器控制8个led跑马灯

项目地址:https://www.tinkercad.com/things/5nsSWyQOAkI-chenillard // Arduino Pattern Creator by PhilCam // http://my.free.time.free.fr/ // Use with Uno R3 + 74HC595 + 8 leds int d...

C 面向对象编程 --- 一模块的串口协议解析

// 任务目的// 解析串口收到的54个字节。这54个字节包含了8个车道的5大信息以及校验信息。// 实现了查询每条车道包含了哪些信息。 #include <stdio.h> #include <malloc.h> #include <assert.h> typedef unsigned char mybool;...

蜂鸟E203系列——嵌入式软件环境

目录 安装串口显示 安装konsole 安装screen 运行hbird demo程序 打开控制台 编译 demo 程序 下载程序 结果显示 运行 coremark 跑分程序 运行 dhrystone 跑分程序 参考文档 目录 安装串口显示 安装konsole 安装screen 运行hbird demo程序 打开控制台 编...

【雕爷学编程】Arduino动手做(55)--DHT11温湿度传感器

37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和模块,依照实践(动手试试)出真知的理念,以学习和交流为目的,这里准备逐一做做实验,不管能否成功,都会记录下来---小小的进步或是搞不掂的问题,希望能够抛砖引玉。  【Arduino】168种传感器模块系列实验(资料+代码+图形...

【Arduino】使用C#实现Arduino与电脑进行串行通讯

在给Arduino编程的时候,因为没有调试工具,经常要通过使用串口通讯的方式调用Serial.print和Serial.println输出Arduino运行过程中的相关信息,然后在电脑上用Arduino IDE的Serial Monitor来查看print出来的信息。Serial Monitor不仅可以接受Arduino发送到电脑的数据,还可以向Ardui...