我正在开展一个教育机器人项目,该项目应该允许通过蓝牙控制机器人。机器人是一个现成的机器人,具有Arduino正常自动驾驶的串行接口。
我尝试做的是允许用户在蓝牙串口(连接到硬件串行引脚或软件串行引脚)时写入一系列命令,同时自动化仍然在运行以及当他们发送新线路时,系列命令被发送到机器人的其他部分。
当引脚被拉高或拉低时,我已经使用了其他微控制器并编写了一个简单的中断,但我不确定如何处理字符上的中断。我认为中断是最好的方法,但我对Arduino没有多少经验,所以很多功能我都不知道。
TL; DR:如果我希望arduino在某个字符到达串口时执行代码,我应该使用中断方法吗?
我还想补充一点,因为这是一个教育项目,我想完全留在Arduino,几位朋友和同事已经推荐了具有该功能的替代芯片或MCU,但我希望对新程序员和工程师。
答案 0 :(得分:1)
内置的HardwareSerial不支持中断驱动的字符处理。使用典型的轮询方法可以获得许多草图:
while (Serial.available()) {
char c = Serial.read();
// code that watches for certain characters
.
.
.
}
您所描述的需要中断的内容并没有任何内容,但您可以使用我编写(修改过)的称为NeoHWSerial的扩展版本的HardwareSerial。它调用您从中断服务程序提供的函数(参见文档)。