Arduino - NO_KEY 是啥意思和做啥?

Posted

技术标签:

【中文标题】Arduino - NO_KEY 是啥意思和做啥?【英文标题】:Arduino - What does NO_KEY mean and do?Arduino - NO_KEY 是什么意思和做什么? 【发布时间】:2020-12-22 19:29:08 【问题描述】:

我正在尝试使用 LCD 和键盘制作一个计算器项目,但为了做到这一点,我需要知道 NO_KEY 的含义。

void loop() 
  char customKey = keypad.getKey();
  
  if (customKey != NO_KEY)
  
    Serial.println(customKey);
  

有人知道它可以做什么吗?

通常,如果没有它,串行监视器会吐出右键但来回闪烁?

当我添加这一行时,它神奇地起作用了。

感谢您的帮助!

【问题讨论】:

【参考方案1】:

您正在使用keypad.getKey() 方法。这意味着每一帧,您都要求查看键盘上按下的键是什么,即使没有按下键。如果没有按键被按下,那么它会给出NO_KEY的值。

一种整合方式是这样的:

if (keypad.getKey() != NO_KEY)

    // The code here will run whenever there is a key pressed

【讨论】:

【参考方案2】:

这意味着没有按下任何东西。 循环的每个循环,arduino 都会“获取”缓冲区中等待的当前字符。 如果没有等待字符,keypad.getKey() 将返回 NO_KEY

为什么要使用这个? keypad.getKey()

返回按下的键(如果有)。这个功能是 非阻塞。

这意味着您的 arduino 在按下键之前不会变得糟糕。 (不像waitForKey()

more here

【讨论】:

感谢您的帮助!【参考方案3】:

好的,我的朋友已经告诉我为什么需要这样做了。

本质上,getKey 函数无论如何都会给出一个字符响应,这意味着当没有按下任何键时,它会在串行监视器中显示为一个空格,因此会闪烁。

现在它只会在不等于no key时才发布。

太好了,是时候继续项目的其余部分了!

【讨论】:

以上是关于Arduino - NO_KEY 是啥意思和做啥?的主要内容,如果未能解决你的问题,请参考以下文章

$ 在 Haskell 中是啥意思/做啥?

“|”是啥意思(单管道)在 JavaScript 中做啥?

“?”是啥意思?和“:”在布尔语句中做啥? [复制]

“启用加载”和“包括在报告刷新中”是啥意思/做啥?

??!??! 是啥意思?运算符在 C 中做啥?

__file__ 变量是啥意思/做啥?