Arduino语言注解
Arduino语言注解 Arduino语言是建立在C/C++基础上的,其基础是C语言,Arduino语言只不过把AVR单片机(微控制器)相关的一些参数设置都函数化,不用我们去了解他的底层,让不了解AVR单片机(微控制器)的朋友也能轻松上手。 基础C语言 关键字:· if 条件选择语句· if...else 条件选择语句· for for 循环语句· switch case 并行多分支选择· while 循环语句· do... while 循环语句· break 强制跳出循环· continue 继续 · return 返回· goto 无条件转移 变量的作用范围(作用域): 作用范围与该变量在哪儿**有关,大致分为如下两种。1、全局变量:若在程序开头的**区或者是在没有大括号限制的**区,所**的变量的作用域为整个程序。2、局部变量:若在大括号内的**区所**的变量,其作用域将受限于大括号。若在主程序与各函数中都**了相同名称的变量,则离开主程序或函数,该变量将自动消失。 语法符号:· ; 每个语句和数据定义的最后必须有一个分号。· {} 大括号内的内容是函数体,即{......}。· / ** / C语言的注释以 / * 开始,以 * / 结束,注释可以跟在指令之后,也可以在独立一行中。· // 注释也可以用 “//”开头,该符号右边整行都是注释。 赋值运算符:· = (指定) 例如:A=x 将x变量的值放入A变量;· += (加入) 例如:B+=x将B变量的值与x变量的值相加,其和放入B变量,与B=B+x相同。· -= (减去) 例如:C-=x将C变量的值减去x变量的值,其差放入C变量,与C=C-x相同。· *= (乘入) 例如:D*=x将D变量的值与x变量的值相乘,其积放入D变量,与D=D*x相同。· /= (除) 例如:E/=x将E变量的值除以x变量的值,其商放入E变量,与E=E/x相同。· %= (取余) 例如:F%=x将F变量的值除以x变量的值,其余数放入F变量,与F=F%x相同。· &= (或运算) 例如:G&=x将G变量的值与x变量的值相AND运算,其结果放入G变量,与G=G&x相同。· |= (或运算) 例如:H|=x将H变量的值与x变量的值相OR运算,其结果放入H变量,与H=H|x相同。· ^= (互斥或)例如:I^=x将I变量的值与x变量的值相XOR运算,其结果放入I变量,与I=I^x相同。· <<= (左移) 例如:J<<=n将J变量的值左移n位,与J=J<<n相同。· >>= (右移) 例如:K>>=n将K变量的值右移n位,与K=K>>n相同。算数运算符:· + (加) 例如:A=x+y 将x与y变量的值相加,其和放入A变量;· - (减) 例如:B=x-y 将x变量的值减去y变量的值,其差放入B变量;· * (乘)例如:C=x*y 将x与y变量的值相乘,其积放入C变量;· / (除)例如:D=x/y 将x变量的值除以y变量的值,其商放入D变量;· % (取余)例如:E=x%y 将x变量的值除以y变量的值,其余数放入E变量;关系运算符:· == (相等)例如:x==y比较x与y变量的值是否相等,相等则其结果为1,不相等则为0;· != (不等)例如:x!=y比较x与y变量的值是否相等,不相等则其结果为1,相等则为0;· < (小于)例如:x<y 若x变量的值小于y变量的值,其结果为1,否则为0;· > (大于)例如:x>y 若x变量的值大于y变量的值,其结果为1,否则为0;· <= (小等于)例如: x<=y若x变量的值小等于y变量的值,其结果为1,否则为0;· >=(大等于)例如: x>=y若x变量的值大等于y变量的值,其结果为1,否则为0;逻辑运算符:· &&(与运算) · 例(x>y)&&(y>z)若x变量的值大于y变量的值,且y变量的值大于z变量的值,则其结果为1,否则为0。· ||(或运算)· 例(x>y)||(y>z)若x变量的值大于y变量的值,或y变量的值大于z变量的值,则其结果为1,否则为0。· !(非运算)例 !(x>y) 若x变量的值大于y变量的值,则其结果为0,否则为1。递增/减运算符:· ++ (加1) 例如:x++将x变量的值加1;(在使用i之后,再使i值加1)· -- (减1)例如:x--将x变量的值减1。(在使用i之后,再使i值减1)数据类型:· char 字符 8bit· unsigned char 无符号字符 8bit · int 整数 16bit· unsigned int 无符号整数 16bit· long 长整数 32bit· unsigned long 无符号长整数 32bit· float 浮点数 32bit· double 双倍精度浮点数 64bit· array 数组· void 无 0 为什么要定义变量?定义变量就相当于给存储地址取个名字。数据类型转换:· char()· byte()· int()· long()· float()常量:· HIGH / LOW 表示数字IO口的电平,HIGH 表示高电平(1),LOW 表示低电平(0)。· INPUT / OUTPUT表示数字IO口的方向,INPUT 表示输入(高阻态),OUTPUT表示输出(AVR能提供5V电压 40mA电流)。· true / false true 表示真(1),false表示假(0)。 以上为基础c语言的关键字和符号Arduino 语言 结构· void setup() 初始化变量,管脚模式,调用库函数等· void loop() 连续执行函数内的语句功能数字 I/O· pinMode(pin, mode) 数字IO口输入输出模式定义函数,pin表示为0~13, mode表示为INPUT或OUTPUT。· digitalWrite(pin, value) 数字IO口输出电平定义函数,pin表示为0~13,value表示为HIGH或LOW。比如定义HIGH可以驱动LED。· int digitalRead(pin) 数字IO口读输入电平函数,pin表示为0~13,value表示为HIGH或LOW。比如可以读数字传感器。模拟 I/O· int analogRead(pin) 模拟IO口读函数,pin表示为0~5(Arduino Diecimila为0~5,Arduino nano为0~7)。比如可以读模拟传感器(10位AD,0~5V表示为0~1023)。· analogWrite(pin, value) - PWM 数字IO口PWM输出函数,Arduino数字IO口标注了PWM的IO口可使用该函数,pin表示3, 5, 6, 9, 10, 11,value表示为0~255。比如可用于电机PWM调速或音乐播放。扩展 I/O· shiftOut(dataPin, clockPin, bitOrder, value) SPI外部IO扩展函数,通常使用带SPI接口的74HC595做8个IO扩展,dataPin为数据口,clockPin为时钟口,bitOrder为数据传输方向(MSBFIRST高位在前,LSBFIRST低位在前),value表示所要传送的数据(0~255),另外还需要一个IO口做74HC595的使能控制。· unsigned long pulseIn(pin, value) 脉冲长度记录函数,返回时间参数(us),pin表示为0~13,value为HIGH或LOW。比如value为HIGH,那么当pin输入为高电平时,开始计时,当pin输入为低电平时,停止计时,然后返回该时间。时间函数· unsigned long millis() 返回时间函数(单位ms),该函数是指,当程序运行就开始计时并返回记录的参数,该参数溢出大概需要50天时间。· delay(ms) 延时函数(单位ms)。· delayMicroseconds(us) 延时函数(单位us)。数学函数· min(x, y) 求最小值· max(x, y) 求最大值· abs(x) 计算绝对值· constrain(x, a, b) 约束函数,下限a,上限b,x必须在ab之间才能返回。· map(value, fromLow, fromHigh, toLow, toHigh) 约束函数,value必须在fromLow与toLow之间和fromHigh与toHigh之间。· pow(base, exponent) 开方函数,base的exponent次方。· sq(x) 平方· sqrt(x) 开根号三角函数· sin(rad)· cos(rad)· tan(rad)随机数函数· randomSeed(seed) 随机数端口定义函数,seed表示读模拟口analogRead(pin)函数 。· long random(max) 随机数函数,返回数据大于等于0,小于max。· long random(min, max) 随机数函数,返回数据大于等于min,小于max。外部中断函数· attachInterrupt(interrupt, , mode) 外部中断只能用到数字IO口2和3,interrupt表示中断口初始0或1,表示一个功能函数,mode:LOW低电平中断,CHANGE有变化就中断,RISING上升沿中断,FALLING 下降沿中断。· detachInterrupt(interrupt) 中断开关,interrupt=1 开,interrupt=0 关。中断使能函数· interrupts() 使能中断· noInterrupts() 禁止中断串口收发函数· Serial.begin(speed) 串口定义波特率函数,speed表示波特率,如9600,19200等。· int Serial.available() 判断缓冲器状态。· int Serial.read() 读串口并返回收到参数。· Serial.flush() 清空缓冲器。· Serial.print(data) 串口输出数据。· Serial.println(data) 串口输出数据并带回车符。 Arduino语言库文件官方库文件· EEPROM - EEPROM读写程序库· Ethernet - 以太网控制器程序库· LiquidCrystal- LCD控制程序库· Servo - 舵机控制程序库· SoftwareSerial - 任何数字IO口模拟串口程序库· Stepper - 步进电机控制程序库· Wire - TWI/I2C总线程序库· Matrix - LED矩阵控制程序库· Sprite - LED矩阵图象处理控制程序库非官方库文件· DateTime - a library for keeping track of the current date and time in software.· Debounce - for reading noisy digital inputs (e.g. from buttons)· Firmata - for communicating with applications on the computer using a standard serial protocol.· GLCD - graphics routines for LCD based on the KS0108 or equivalent chipset.· LCD - control LCDs (using 8 data lines)· LCD 4 Bit- control LCDs (using 4 data lines)· LedControl - for controlling LED matrices or seven-segment displays with a MAX7221 or MAX7219.· LedControl - an alternative to the Matrix library for driving multiple LEDs with Maxim chips.· Messenger- for processing text-based messages from the computer· Metro - help you time actions at regular intervals· MsTimer2 - uses the timer 2 interrupt to trigger an action every N milliseconds.· OneWire - control devices (from Dallas Semiconductor) that use the One Wire protocol.· PS2Keyboard - read characters from a PS2 keyboard.· Servo - provides software support for Servo motors on any pins.· Servotimer1 - provides hardware support for Servo motors on pins 9 and 10· Simple Message System- send messages between Arduino and the computer· SSerial2Mobile- send text messages or emails using a cell phone (via AT commands over software serial)· TextString - handle strings· TLC5940 - 16 channel 12 bit PWM controller.· X10 - Sending X10 signals over AC power lines以上库文件都需要下载到编译环境(如下目录:arduino-0022\hardware\libraries)中才能使用。谢谢分享啦。初学用的
页:
[1]