GPIO 引脚在不应该忙的时候忙

如何解决GPIO 引脚在不应该忙的时候忙

我在 python 中使用 lgpio 并创建一个项目,该项目允许我使用 Flask REST API 控制一些 gpio 引脚。出于某种原因,当我在没有烧瓶的情况下运行代码时,gpio 引脚工作得很好,但是一旦我添加了烧瓶,一切都会走下坡路。这是我的代码错误,如果有人可以帮助或指出我正确的方向,那将是惊人的

import lgpio,time
from flask import Flask,jsonify,request
from flask_restful import Resource,Api


# creating the flask app
app = Flask(__name__)
# creating an API object
api = Api(app)

switchDown = 23
switchUp = 22
led1 = 20
led2 = 21

h = lgpio.gpiochip_open(0)
lgpio.gpio_claim_input(h,switchUp)
lgpio.gpio_claim_input(h,switchDown)
lgpio.gpio_claim_output(h,led1)
lgpio.gpio_claim_output(h,led2)
#debugging trying to figure out why gpio is in use
print(lgpio.gpio_get_chip_info(h))
print(lgpio.gpio_get_line_info(h,switchUp))
print(lgpio.gpio_get_line_info(h,led1))
print(lgpio.gpio_get_mode(h,switchDown))
print(lgpio.gpio_get_mode(h,switchUp))
print(lgpio.gpio_get_mode(h,led2))

class test(Resource):
    if lgpio.gpio_read(h,switchUp) == 1:
        lgpio.gpio_write(h,led1,1)
        time.sleep(5)
        lgpio.gpio_write(h,0)
    elif lgpio.gpio_read(h,switchDown) == 1:
        lgpio.gpio_write(h,led2,0)
    else:
        lgpio.gpio_write(h,0)
        lgpio.gpio_write(h,0)

# adding the defined resources along with their corresponding urls
api.add_resource(test,'/')


# driver function
if __name__ == '__main__':

    app.run(debug = True)

打印语句的输出“ [0,58,'gpiochip0','pinctrl-bcm2711'] [0,22,1,'GPIO22','lg'] [0,20,3,'GPIO20','lg'] 257 257 515 515"
Traceback (most recent call last): File "/home/ubuntu/nut-button/__main__.py",line 18,in <module> lgpio.gpio_claim_input(h,switchUp) File "/usr/local/lib/python3.9/dist-packages/lgpio-0.1.7.0-py3.9-linux-aarch64.egg/lgpio.py",line 744,in gpio_claim_input return _u2i(_lgpio._gpio_claim_input(handle&0xffff,lFlags,gpio)) File "/usr/local/lib/python3.9/dist-packages/lgpio-0.1.7.0-py3.9-linux-aarch64.egg/lgpio.py",line 458,in _u2i raise error(error_text(v)) lgpio.error: 'GPIO busy'

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?