作为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的值是什么,设置在哪里?
答案 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
时作为参数传递的内容。根据文档,“中断时指定引脚的电平作为参数传递给回调。”