lua trig(pin,“down”,pin1cb)问题

时间:2017-01-30 02:46:15

标签: lua

作为lua的新手,我不太了解文档中的trig示例。 https://nodemcu.readthedocs.io/en/master/en/modules/gpio/#gpiotrig

1)在“trig(pin,”down“,pin1cb)”中,pin1cb没有参数,而在函数中,pin1cb的参数为“level”。为什么?什么是“水平”?

2)在“trig(pin,level == gpio.HIGH和”down“或”up“)”中,level的值是什么,设置在哪里?

1 个答案:

答案 0 :(得分:0)

gpio.trig(pin, [type [, callback_function]])callback_function(level)应该意味着callback_function应该是一个函数,将使用一个值作为其参数调用(并且在描述和示例中,参数是命名为'level')。

所以

gpio.trig( 5, "both", function( v ) --[[callback code here]]  end )

应该是一个有效的调用(我将参数'v'命名为'level'而不是'level' - 你可以选择任何名字。)

有了这个,(1)应该更清楚:function pin1cb( level ) … end定义一个带有一个参数的函数,而在trig(pin, "down", pin1cb)中,这个函数被传递给trig。 (函数存在独立于名称,你可以传递它们,将它们分配给局部或全局变量,......所以在这里,实际的函数 - 不是调用它的结果或类似的东西 - 作为参数传递。)

和(2):level是调用pin1cb时作为参数传递的内容。根据文档,“中断时指定引脚的电平作为参数传递给回调。”