CoolPi 4B的GPIO问题
-
测试代码
import time
import CPi.GPIO as GPIOPIN = 22
GPIO.setmode(GPIO.BOARD)
GPIO.setup(PIN, GPIO.IN)while True:
print(GPIO.input(PIN))
time.sleep(1)不知道设置上拉的命令是什么,设置GPIO.UP那些都没有该模块,如果不能设置上拉,该GPIO作为输入的时候,引脚电流大概有75mA,但其他单片机一般引脚输出电流20mA左右,因此将无法检测到高电平。
这个问题该如何解决?
主要是能否设置上拉,不能的话,是否有引脚设置的默认上拉? -
@Threadripper
你是用哪个镜像版本 -
@大法师 0306的22.04 CPi是论坛下的
-
@Threadripper
你加个sudo权限运行试下 -
PIN 22 set input
PIN 40 (RK chip gpio115) set output
-
@大法师 不是 我在
import CPi.GPIO as GPIO
然后
help(GPIO)
里面找到setup
发现里面并没有设置上拉的选项 只有设置是输入还是输出 以及引脚号和初始的时候是高电平还是低电平 -
@Threadripper
没有单独设置上拉、下拉配置。如果特殊需要,可以自己更改内核dtb配置,一般情况下不用改 -
@jack_admin 我是这样用是可以用 我遇到的问题是我手上有一个不带上拉电阻的IRQ引脚 在触发某个事件的时候会拉低 平常是高电平 我这个IRQ引脚最大只能输出20ma电流 超过则无法输出高电平 所以导致了接4b上面的时候无法正确检测到高电平 这个问题导致了全程都会被误判为进入中断
-
@大法师 好的
-
@大法师 请问有办法设置上电时的初始GPIO电平吗?
我切到root用户,echo 115 > /sys/class/gpio/export
/sys/class/gpio/gpio115 下 使用命令 echo 0 > value。都能操作成功,但是断电重启后,又恢复了。有没办法,修改后,断电再上电还能保持设置的电平 -
@AugustRobot_Zou 把需要操作的命令加到/etc/rc.local
-
@大法师 谢谢!搞定了
ubuntu 20没有/etc/rc.local,需要- 新建service
sudo vim /etc/systemd/system/rc-local.service
[Unit] Description=/etc/rc.local Compatibility ConditionPathExists=/etc/rc.local [Service] Type=forking ExecStart=/etc/rc.local start TimeoutSec=0 StandardOutput=tty RemainAfterExit=yes SysVStartPriority=99 [Install] WantedBy=multi-user.target
2.使能service
sudo systemctl enable rc-local.service
3.新建/etc/rc.local
sudo vim /etc/rc.local
并需要操作的命令加进去
4.启动服务
sudo systemctl start rc-local.service
sudo systemctl status rc-local.service - 新建service