如何设置树莓派开机后自动关闭GPIO19(PIN35)PWM1默认输出
树莓派GPIO19(PWM1)开机自动输出信号解决方案
根因说明
树莓派启用硬件PWM功能时,默认的设备树配置会给PWM引脚设置非0的初始占空比,所以GPIO19切换到ALT5模式后立刻就会有信号输出,触发ESC启动电机。
方案1:修改设备树配置(优先推荐)
直接修改/boot/config.txt中的PWM启用参数,添加初始占空比为0的配置即可:
- 打开配置文件:
sudo nano /boot/config.txt
- 找到你之前添加的PWM启用行,修改为对应参数:
- 如果你用的是单通道PWM配置:
dtoverlay=pwm,pin=19,func=5,initial=0 - 如果你用的是双通道PWM配置:
dtoverlay=pwm-2chan,pin=12,func=4,pin2=19,func2=5,initial2=0
- 保存退出后重启树莓派即可,开机后PWM1默认占空比为0,不会输出有效信号。
注意:修改配置文件前建议先备份,避免配置错误导致系统启动异常
方案2:添加开机脚本重置PWM状态
如果你的树莓派系统版本较旧,设备树不支持initial参数,可以用开机脚本强制重置PWM输出:
- 打开rc.local配置文件:
sudo nano /etc/rc.local
- 在
exit 0行之前添加以下内容(脉宽参数根据你使用的ESC需求调整,单位为纳秒):
# 重置PWM1初始占空比为0 echo 1 > /sys/class/pwm/pwmchip0/export echo 20000000 > /sys/class/pwm/pwmchip0/pwm1/period # 50Hz频率对应20ms周期 echo 0 > /sys/class/pwm/pwmchip0/pwm1/duty_cycle echo 1 > /sys/class/pwm/pwmchip0/pwm1/enable
- 保存退出后重启即可。
补充方案:ESC端校准
大部分航模ESC支持油门行程校准,你可以按照ESC说明书操作,将树莓派开机默认输出的PWM值设置为最低油门死区,也可以避免开机误启动。
内容的提问来源于stack exchange,提问作者0ussama
相关产品推荐
相关产品推荐

