树莓派点灯(TODO)

先做个简单一丢丢的吧。。。正好最近工作也要用这个。

先用Python试了下,很简单就亮了。

用的GPIO 26口。

代码如下:

import RPi.GPIO as GPIO
import time

# 设置 GPIO 引脚编号模式 (BCM 模式)
GPIO.setmode(GPIO.BCM)

# 设置 GPIO 17 为输出引脚
led_pin = 17
GPIO.setup(led_pin, GPIO.OUT)

# LED 闪烁的循环
try:
    while True:
        GPIO.output(led_pin, GPIO.HIGH)  # 点亮 LED
        time.sleep(1)                    # 延迟 1 秒
        GPIO.output(led_pin, GPIO.LOW)   # 熄灭 LED
        time.sleep(1)                    # 延迟 1 秒
except KeyboardInterrupt:
    pass
finally:
    GPIO.cleanup()  # 清理 GPIO 状态

当然,今天的关键不是PY。而且内核。

换第二种方法,经常看别人驱动大神的方法。先看了GPT,给的答案如下:

# 导出GPIO26
echo 26 | sudo tee /sys/class/gpio/export

# 设置为输出
echo out | sudo tee /sys/class/gpio/gpio26/direction

# 打开LED
echo 1 | sudo tee /sys/class/gpio/gpio26/value

# 关闭LED
echo 0 | sudo tee /sys/class/gpio/gpio26/value

但是实际上这样不行,一直报write error: Invalid argument,真的要郁闷了。后面到处找,才在一篇文章中找到答案。解决 sh:write error:Invalid argument_sh: write error: invalid argument-CSDN博客

说是GPIO号不匹配,在本机查了,如下:

pi@raspberrypi:/sys/class/gpio$ cat /sys/kernel/debug/gpio
gpiochip0: GPIOs 512-565, parent: platform/3f200000.gpio, pinctrl-bcm2835:
 gpio-512 (ID_SDA              )
 gpio-513 (ID_SCL              )
 gpio-514 (GPIO2               )
 gpio-515 (GPIO3               )
 gpio-516 (GPIO4               )
 gpio-517 (GPIO5               )
 gpio-518 (GPIO6               )
 gpio-519 (GPIO7               |spi0 CS1            ) out hi ACTIVE LOW
 gpio-520 (GPIO8               |spi0 CS0            ) out hi ACTIVE LOW
 gpio-521 (GPIO9               )
 gpio-522 (GPIO10              )
 gpio-523 (GPIO11              )
 gpio-524 (GPIO12              )
 gpio-525 (GPIO13              )
 gpio-526 (GPIO14              )
 gpio-527 (GPIO15              )
 gpio-528 (GPIO16              )
 gpio-529 (GPIO17              )
 gpio-530 (GPIO18              )
 gpio-531 (GPIO19              )
 gpio-532 (GPIO20              )
 gpio-533 (GPIO21              )
 gpio-534 (GPIO22              )
 gpio-535 (GPIO23              )
 gpio-536 (GPIO24              )
 gpio-537 (GPIO25              )
 gpio-538 (GPIO26              )
 gpio-539 (GPIO27              )
 gpio-540 (NC                  )
 gpio-541 (LAN_RUN_BOOT        )
 gpio-542 (CTS0                )
 gpio-543 (RTS0                )
 gpio-544 (TXD0                )
 gpio-545 (RXD0                )
 gpio-546 (SD1_CLK             )
 gpio-547 (SD1_CMD             )
 gpio-548 (SD1_DATA0           )
 gpio-549 (SD1_DATA1           )
 gpio-550 (SD1_DATA2           )
 gpio-551 (SD1_DATA3           )
 gpio-552 (PWM0_OUT            )
 gpio-553 (PWM1_OUT            )
 gpio-554 (ETH_CLK             )
 gpio-555 (WIFI_CLK            )
 gpio-556 (SDA0                )
 gpio-557 (SCL0                )
 gpio-558 (SMPS_SCL            )
 gpio-559 (SMPS_SDA            )
 gpio-560 (SD_CLK_R            )
 gpio-561 (SD_CMD_R            )
 gpio-562 (SD_DATA0_R          )
 gpio-563 (SD_DATA1_R          )
 gpio-564 (SD_DATA2_R          )
 gpio-565 (SD_DATA3_R          )

gpiochip1: GPIOs 566-567, parent: platform/soc:firmware:virtgpio, brcmvirt-gpio, can sleep:
 gpio-566 (                    |ACT                 ) out hi

gpiochip2: GPIOs 568-575, parent: platform/soc:firmware:expgpio, raspberrypi-exp-gpio, can sleep:

原来GPIO26对应的是gpio-538,换成538之后,可以顺利通过命令行点灯了。

# 导出GPIO26
echo 538 | sudo tee /sys/class/gpio/export

# 设置为输出
echo out | sudo tee /sys/class/gpio/gpio538/direction

# 打开LED
echo 1 | sudo tee /sys/class/gpio/gpio538/value

# 关闭LED
echo 0 | sudo tee /sys/class/gpio/gpio538/value

=================================================

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值