Raspberry Pi 5使用NodeJS读取GPIO按键无响应问题排查
问题排查与解决
1. 引脚编号误用
你代码里写的538是sysfs规范的GPIO编号,但绝大多数NodeJS GPIO库(比如常用的onoff)默认采用BCM编号。树莓派5的物理引脚26对应的BCM编号是12,直接把代码里的538替换成12再测试。
2. 未配置上拉电阻
轻触按键直接接引脚和GND时,按键断开后引脚处于浮空状态,电平不稳定,GPIO无法可靠检测到电平变化。需要启用内部上拉电阻,修改初始化代码:
const button = new Gpio(12, 'in', 'both', { pullUpDown: 'up' });
配置后引脚默认保持高电平,按下按键接地时会变为低电平,就能触发watch事件了。
3. 硬件连接验证
- 确认物理引脚26连接正确:按键一端接引脚26,另一端接GND,没有接错引脚。
- 检查按键是否损坏:用万用表测试按键按下时是否导通。
4. 权限不足
即使脚本无报错,没有足够权限访问GPIO也可能导致无法检测电平变化,运行脚本时加上sudo:
sudo node your-script.js
5. 库兼容性问题
树莓派5的GPIO驱动有更新,确保你使用的GPIO库(比如onoff)是最新版本,兼容树莓派5:
npm update onoff
内容的提问来源于stack exchange,提问作者Lapidus
相关产品推荐
相关产品推荐

