求助:TinyGo中Badger2040按钮Get()始终返回true如何解决?
解决思路
确认TinyGo引脚映射是否正确
Badger2040的Button A对应RP2040的GPIO12,你可以跳过machine.BUTTON_A的别名,直接用硬件引脚号配置测试:button_a := machine.Pin(12) button_a.Configure(machine.PinConfig{Mode: machine.PinInputPullup})部分场景下框架的引脚别名可能存在适配偏差,直接使用硬件引脚号能排除这类问题。
验证引脚读取的实际值
在循环中添加打印语句,确认按钮按下/松开时的返回值变化:import "fmt" // ... 其余代码 for { btnState := button_a.Get() fmt.Println(btnState) led.Set(!btnState) time.Sleep(time.Second / 4) }刷入程序后通过串口查看输出,确认是否真的始终返回true。如果串口输出有变化,说明LED逻辑可能存在反转问题;若仍一直输出true,则说明引脚配置存在异常(硬件层面你已通过CircuitPython验证,可排除硬件连接问题)。
显式配置上拉电阻
尝试手动指定上拉属性,而非依赖PinInputPullup的快捷配置:button_a.Configure(machine.PinConfig{ Mode: machine.PinInput, Pull: machine.PinPullUp, })少数情况下,框架的
PinInputPullup可能未正确设置Pull参数,显式指定PinPullUp能确保配置生效。排查TinyGo板级适配问题
若以上方法均无效,可能是TinyGo对Badger2040的板级支持存在bug。可以尝试更新TinyGo至最新版本,或者查看TinyGo GitHub仓库中关于Badger2040的issues,确认是否有其他用户遇到类似问题。
内容的提问来源于stack exchange,提问作者AndyS
相关产品推荐
相关产品推荐

