我一直试图通过Tinygo访问Badger2040按钮,没有任何运气(我以前在CircuitPython中取得了成功)。
当我尝试根据按钮A改变led状态时,led打开并且从不关闭:
package main
import (
"machine"
"time"
)
func main() {
led := machine.LED
led.Configure(machine.PinConfig{Mode: machine.PinOutput})
button_a := machine.BUTTON_A
button_a.Configure(machine.PinConfig{Mode: machine.PinInputPullup})
for {
led.Set(button_a.Get())
time.Sleep(time.Second / 4)
}
}
如果我改变led。设置为通过!button_a.Get()
,则led始终关闭。
看起来button_a.Get()总是返回true。
有人有什么想法吗?
我基于所包含的TinyGo示例(不是用于Badger2040) -使用PinInputPullup -但事实证明Badger2040需要使用PinInputPulldown,即像这样配置按钮:
button_a.Configure(machine.PinConfig{Mode: machine.PinInputPulldown})
注意,这适用于上/下/a/b/c按钮。用户按钮也可以切换,但是是反向的,即当未按下时返回true。