arduino学习笔记(一)——bamboosir920

arduino学习笔记(一)

原来其实也做过一段时间的arduino,但是一直没有系统性的学习,这里专门从头系统性学习一下arduino,希望以后能够有所帮助。

基础知识

程序结构

执行顺序:setup()->loop()

其他函数在这两个必要函数中被调用

void setup(){}

代码只有在启动时会调用一次setuo()函数。使用它来初始化变量,引脚模式,启用库等操作,setup函数只能在arduino板子的每次上电或复位后,才会运行一次

Void setup( ) {

}

void Loop(){}

在创建了用于初始化并设置初始值的setup()函数后,loop()函数会允许程序连续的更改和响应,可以用它来主动控制arduino板,当loop函数运行完后,会自动复位重复运行loop()函数

Void loop( ) {
 
}

数据类型

数据类型 字节大小 用途
void 0 仅用于函数声明,表示该函数不返回任何信息
boolean 1 只保存true或false,用来确定是否正确
char 1 存储一个字符值,字符存储形式为ASCII
unsigned char 1 无符号存储字符,范围为0-255
float 4 浮点数,存储带小数的数字
int 2(因板而异) 整数,主要存储类型。范围:(-2^15-1 ~ 2 ^15)-1
Unsigned int 2(因板而异) 无符号整数,0-2^32-1
double 4 双精度浮点数,一般板子上与float相同,在arduino due上有8字节精度
byte 1 存储一个8位无符号数,0-255
Word 2/4 15位无符号
Long 4 int的扩展类型,-2^32-1 ~2 ^32-1
unsigned long 4 无符号数,2 ^64-1

变量

变量定义与C语言的特性

局部变量

只作用于该代码块或函数中,不能在其之外运行

Void setup () {

}

Void loop () {
   int x , y ;
   int z ; 
}

全局变量

定义在所有函数之外,通常位于函数顶部,与程序生命周期长度相同,可以被任何函数访问

int T
float A=0
Void setup () {

}

Void loop () {
}

形式参数

在函数参数的定义中,不具有实际意义

int a(int c){
}

运算符

布尔运算符

假设变量A为10,变量B为20

运算符名称 运算符简写 例子
and(与) && (A && B)为真
or(或) || (A || B)为真
not(非) ! !(A && B)为假

位运算符

假设变量A为60,变量B为13

运算符名称 运算符简写 描述 例子
and(与) & 如果同时存在于两个操作数中,二进制AND运算符复制一位到结果中。 (A & B)将得出12,即0000 1100
or(或) | 如果存在于任一操作数中,二进制OR运算符复制一位到结果中。 (A B)将得出61,即0011 1101
xor(异或) ^ 如果存在于其中一个操作数中但不同时存在于两个操作数中,二进制XOR运算符复制一位到结果中。 (A ^ B)将得出49,即0011 0001
not(非) ~ 二进制NOT运算符是一元运算符,具有"翻转"位效果。 (〜A)将得出-60,即1100 0011
shift left(左移) << 二进制左移运算符。左操作数的值向左移动右操作数指定的位数。 A<< 2将得出240,即1111 0000
shift right(右移) >> 二进制右移运算符。左操作数的值向右移动右操作数指定的位数。 A>> 2将得出15,即0000 1111

控制语句

if…else

判断语句

if()
{
}
else if()
{
}
else
{
}

switch case

\\变量A只能是整数
switch (A)
{
	case 0:{};break;
	case 1:{};break;
	case 2:{};break;
	default:{}
}

循环

while

while(i<n) {
   ....
}

do…while

do { 
 ...
} 
while (i<n);

for

for(int i=0;i <= 9;i++) {
   ...
}

字符串

字符串数组

可以用char数组存储字符串

与C相同,字符串是一个特殊的数组,字符串末尾有个额外的元素,值永为0,空终止字符串

char str[6]="hello";
char my_str[] = "Hello";

字符串操作

字符串串联

strcat()函数:将一个字符串加到另一个字符串末尾

strcat(str,",john")
字符串长度

strlen():用于获取字符串的长度,不包括空终止符

strlen(str);
数组长度

sizeof:长度包括空终止符

sizeof(str);
复制字符串

strcpy:将字符串str复制到另一个字符串数组

strcpy(out_str, str);

字符串对象

String

String my_str = "This is my string." ;
转换大小写

对象包含的字符串数据(或文本)转换为大写字符

my_str.toUpperCase();
覆盖

仅适用于String对象

my_str = "My new string." ;
替换

replace() 函数用于将传递给它的第二个字符串替换传递给它的第一个字符串

my_str.replace("string", "Arduino sketch");

字符串长度`

length()获取字符串的长度,可以直接获取,你需要中间量

Serial.println(my_str.length());

猜你喜欢

转载自blog.csdn.net/InkBamboo920/article/details/105989876
920