收藏官网首页
查看: 13872|回复: 1

[资料分享] Arduino语言注解

34

主题

37

帖子

318

积分

中级会员

Rank: 3Rank: 3

积分
318
跳转到指定楼层
楼主
发表于 2016-12-29 18:48:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
免费使用STM32、APP自动代码生成工具
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 xy变量的值相加,其和放入A变量;
· -     (减) 例如:B=x-y x变量的值减去y变量的值,其差放入B变量;
· *     (乘)例如:C=x*y xy变量的值相乘,其积放入C变量;
· /     (除)例如:D=x/y x变量的值除以y变量的值,其商放入D变量;
· %    (取余)例如:E=x%y x变量的值除以y变量的值,其余数放入E变量;
关系运算符:
· ==   (相等)例如:x==y  比较xy变量的值是否相等,相等则其结果为1,不相等则为0
· !=   (不等)例如:x!=y  比较xy变量的值是否相等,不相等则其结果为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>zx变量的值大于y变量的值,且y变量的值大于z变量的值,则其结果为1,否则为0
· ||  (或运算)
· 例(x>y)||y>zx变量的值大于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表示为013mode表示为INPUTOUTPUT
· digitalWrite(pin, value)    数字IO口输出电平定义函数,pin表示为013value表示为HIGHLOW。比如定义HIGH可以驱动LED
· int digitalRead(pin)    数字IO口读输入电平函数,pin表示为013value表示为HIGHLOW。比如可以读数字传感器。
模拟 I/O
· int analogRead(pin)    模拟IO口读函数,pin表示为05Arduino Diecimila05Arduino nano07)。比如可以读模拟传感器(10AD05V表示为01023)。
· analogWrite(pin, value) - PWM     数字IOPWM输出函数,Arduino数字IO口标注了PWMIO口可使用该函数,pin表示3, 5, 6, 9, 10, 11value表示为0255。比如可用于电机PWM调速或音乐播放。
扩展 I/O
· shiftOut(dataPin, clockPin, bitOrder, value)    SPI外部IO扩展函数,通常使用带SPI接口的74HC5958IO扩展,dataPin为数据口,clockPin为时钟口,bitOrder为数据传输方向(MSBFIRST高位在前,LSBFIRST低位在前),value表示所要传送的数据(0255),另外还需要一个IO口做74HC595的使能控制。
· unsigned long pulseIn(pin, value)    脉冲长度记录函数,返回时间参数(us),pin表示为013valueHIGHLOW。比如valueHIGH,那么当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,上限bx必须在ab之间才能返回。
· map(value, fromLow, fromHigh, toLow, toHigh)    约束函数,value必须在fromLowtoLow之间和fromHightoHigh之间。
· pow(base, exponent)   开方函数,baseexponent次方。
· 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)    外部中断只能用到数字IO23interrupt表示中断口初始01,表示一个功能函数,modeLOW低电平中断,CHANGE有变化就中断,RISING上升沿中断,FALLING 下降沿中断。
· detachInterrupt(interrupt)    中断开关,interrupt=1 开,interrupt=0 关。
中断使能函数
· interrupts()        使能中断
· noInterrupts()      禁止中断
串口收发函数
· Serial.begin(speed)       串口定义波特率函数,speed表示波特率,如960019200等。
· 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)中才能使用。

0

主题

14

帖子

55

积分

注册会员

Rank: 2

积分
55
沙发
发表于 2018-5-23 08:55:59 | 只看该作者
谢谢分享啦。初学用的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

加入Q群 返回顶部

版权与免责声明 © 2006-2024 Gizwits IoT Technology Co., Ltd. ( 粤ICP备11090211号 )

快速回复 返回顶部 返回列表