当前位置:  开发笔记 > 编程语言 > 正文

没有收到Android Things GpioCallback

如何解决《没有收到AndroidThingsGpioCallback》经验,为你挑选了0个好方法。

我正在尝试从simplepio实现按钮示例.我已经如原理图所示建立了连接.按下按钮后,我没有得到GPIO回调.

我使用的代码与示例代码相同.没有例外,只有"启动活动"在日志中打印

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Log.i(TAG, "Starting ButtonActivity");

    PeripheralManagerService service = new PeripheralManagerService();
    try {
        String pinName = BoardDefaults.getGPIOForButton();
        mButtonGpio = service.openGpio(pinName);
        mButtonGpio.setDirection(Gpio.DIRECTION_IN);
        mButtonGpio.setEdgeTriggerType(Gpio.EDGE_FALLING);
        mButtonGpio.registerGpioCallback(new GpioCallback() {
            @Override
            public boolean onGpioEdge(Gpio gpio) {
                Log.i(TAG, "GPIO changed, button pressed");
                // Return true to continue listening to events
                return true;
            }
        });
    } catch (IOException e) {
        Log.e(TAG, "Error on PeripheralIO API", e);
    }
}

到目前为止我尝试了什么:

    通过使用以下代码运行python按钮程序,验证电路和按钮是否正常工作 raspbian jessie

    #!/usr/bin/env python
    
    import os
    from time import sleep
    
    import RPi.GPIO as GPIO
    
    GPIO.setmode(GPIO.BCM)
    GPIO.setup(21, GPIO.IN, pull_up_down = GPIO.PUD_UP)
    
    while True:
        if (GPIO.input(21) == False):
            print("Button Clicked")
    
        sleep(0.1)
    

    按下按钮时,上面的代码打印"按钮单击".所以我确信我的PI上的按钮和GPIO引脚不是问题.

    为了确保日志记录没有问题,我还尝试修改原始程序以包含一个TextView和一个计数器,以便当单击一个按钮时,计数器值会递增并显示,TextView但是再次没有收到回调并且 TextView没有更新.

    尝试了不同的边缘触发类型,但从未调用onGpioEdge.

以下是我的设置图片

在此输入图像描述

推荐阅读
wurtjq
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有