今天用UNO主板同时监听来自wifi模块和蓝牙模块的数据,SoftwareSerial的实例有个方法.listen();通过切换这个方法来监听来自不同串口的消息,问题来了,这家伙属于耗时方法,一开始用delay()方法来阻塞,但是马上发现资源严重的浪费,于是想到模拟个多线程吧,随便一搜发现Scoop这个库感觉挺优雅,于是乎掉坑。异常 SCoop: undefined reference to timer0_overflow_count',
这个跟Arduino的版本有关系,这个库似乎不再维护了,另外有个改造版也试了、、涛声依旧,于是乎就使用了Chrono,这个节拍器还是很好用的。
https://github.com/SofaPirate/Chrono
#include <Chrono.h>
Chrono myChrono;
void setup() {
}
void loop() {
if (myChrono.hasPassed(1000) ) {
myChrono.restart(); // restart the Chrono
// (一秒执行一次)
}
}
与delay()的阻塞不同,这个节拍器其实就是定时器。
更多的用法去看examples吧。