You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助: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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 19:55:12