当前位置:  开发笔记 > 前端 > 正文

如何判断外围设备是否连接到GPIO?

如何解决《如何判断外围设备是否连接到GPIO?》经验,为你挑选了1个好方法。

我希望能够检测到外围传感器何时没有连接到我的Raspberry Pi 3.

例如,如果我有一个GPIO被动红外传感器.

我可以得到这样的所有GPIO端口:

PeripheralManagerService manager = new PeripheralManagerService();
List portList = manager.getGpioList();
if (portList.isEmpty()) {
    Log.i(TAG, "No GPIO port available on this device.");
} else {
    Log.i(TAG, "List of available ports: " + portList);
}

然后我可以连接到这样的端口:

 try {
     Gpio pir = new PeripheralManagerService().openGpio("BCM4")
     } catch (IOException e) {
         // not thrown in the case of an empty pin
     }

然而,即使引脚是空的,我仍然可以连接到它(这在技术上是有意义的,因为gpio只是二进制打开或关闭).似乎没有任何api,我无法合理地从逻辑上考虑如何区分连接外围传感器的引脚和"空"的引脚.

因此,目前我无法以编程方式断言我的传感器和电路设置正确.

有人有主意吗?从电子产品的角度来看,它甚至可能吗?

参考文档:

https://developer.android.com/things/sdk/pio/gpio.html



1> Devunwired..:

有许多方法可以在电气上进行"存在检测",但在SoC中你没有任何内在的发现.你通常不会问一个GPIO引脚是否有附件 - 它无法告诉你.

额外的GPIO引脚通常用于检测外设是否连接到连接器.例如,用于某些传感器的插头可能包括短路接地的"检测"线,并在连接传感器时将GPIO拉低.USB和SDIO通过接口中的某些专用电路执行类似操作.

您还可以使用电流感应等方法构建更精细的检测电路,但它们不可避免地需要输出通过专用GPIO捕获的二进制信号.

这对于串行外设来说更容易实现,因为您通常可以发送基本命令并验证您是否得到了响应.

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