当某物到达串行端口时中断循环

时间:2017-03-09 18:21:00

标签: python arduino serial-port

我将有一个循环,不断刷新HTML文件。当数据到达我将通过serial库选择的串口时。数据来自Arduino板,当数据到达时,我将读取它并刷新一些变量。我搜索了一下,看到Interrupts通常用于此,但我正在考虑如何实现这种中断。

2 个答案:

答案 0 :(得分:1)

中断通常用于任何时候可能发生的非常时间关键的事情,并且因此可以以最小的延迟执行。

我不认为你想要做的是一个很好的中断用例。

为什么不尝试这样的事情:(伪代码)

repeat forever:
  read serial port
  if data received:
    update variables (call a function that does that)

您可以在处理串行命令时应用几乎任何示例。只需搜索网页。 它始终相同,经常读取串行输入缓冲区并检查接收的数据。当数据符合您的预期时,请执行某些操作。然后继续收听进一步的数据。

答案 1 :(得分:0)

Arduino核心有一个内置的伪中断函数serialEvent,它有点像你想要的那样。它只在每个loop()之间进行检查: https://www.arduino.cc/en/Tutorial/SerialEvent

但@ Piglet的答案可能是最好的解决方案 - 检查串行数据是否在等你,如果是,请回复它。

if (Serial.available()) {
    // do something
}