nothing to say.. @caizhiyuannn@gmail.com
arduino 初始化函数,只会执行一次
// 开启串行通信接口并设置通信波特率, 一般设置为9600,由setup函数初始化
Serial.begin();
// 关闭通信串口
Serial.end();
// 判断串口缓冲器是否有数据装入
Serial.available();
// 读取串口数据
Serial.read();
// 返回下一字节(字符)输入数据,但不删除它
Serial.peek();
// 清空串口缓存
Serial.flush();
// 写入字符串数据到串口
Serial.print();
// 写入字符串数据+换行到串口
Serial.println();
// 写入二进制数据到串口
Serial.write();
// read时触发的事件函数
Serial.SerialEvent();
// 读取固定长度的二进制流
Serial.readBytes(buffer,length);
// 打印接到数据十进制表示的ascii码。 HEX 十六进制表示
Serial.println(incomingByte, DEC);
arduino 主要运行函数,入口函数。会一直不断重复运行这个函数。
arduino 自带map函数可以将模拟量值转化成与目标模拟量对应的值范围,例如,电位器模拟量是0-1023信号值,而LED等模拟值是0-255
int value;
value = map(analogRead(pin), 0, 1023, 0, 255);
// 将0-1023 转化为 0-255值。
void setup() {
Serial.begin(9600);
// 设置13号引脚为输出模式,由于13号引脚和开发板的一个LED连接,对13引脚电平操作会作用LED灯
pinMode(13, OUTPUT);
}
void loop() {
// 将13号电平拉低,延迟800毫秒后将13号电平拉高;继续延迟800毫秒达到LED等不断开关效果
digitalWrite(13, LOW);
delay(800);
digitalWrite(13, HIGH);
delay(800);
}
用于arduino开发板设置和执行中断服务程序(ISR),loop函数会一直不停的运行,当需要人为去触发某个操作,中断程序将会暂停loop运行,跳到attachInterrupt设置指定的函数中运行。
中断服务对于检测arduino的输入有很大的用处。
中断函数中delay函数无法工作
Arduino控制板 | 支持中断的引脚 |
---|---|
UNO,Nano,Mini | 2,3 |
attachInterrupt(digitalPinToInterrupt(pin), ISR_FUNC, MODE);
const byte ledPin = 13;
//用2号引脚作为中断触发引脚
const byte interruptPin = 2;
volatile byte state = LOW;
void setup() {
pinMode(ledPin, OUTPUT);
//将中断触发引脚(2号引脚)设置为INPUT_PULLUP(输入上拉)模式
pinMode(interruptPin, INPUT_PULLUP);
//设置中断触发程序
attachInterrupt(digitalPinToInterrupt(interruptPin), blink, CHANGE);
}
void loop() {
digitalWrite(ledPin, state);
}
//中断服务程序
void blink() {
state = !state;
}
具有8位移位寄存器和一个存储器,以及三态输出功能。