例如,如果我有一个GPIO被动红外传感器.
我可以得到这样的所有GPIO端口:
PeripheralManagerService manager = new PeripheralManagerService();List<String> 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
解决方法 有许多方法可以在电气上进行“存在检测”,但在SoC中你没有任何内在的发现.你通常不会问一个GPIO引脚是否有附件 – 它无法告诉你.额外的GPIO引脚通常用于检测外设是否连接到连接器.例如,用于某些传感器的插头可能包括短路接地的“检测”线,并在连接传感器时将GPIO拉低. USB和Sdio通过接口中的某些专用电路执行类似 *** 作.
您还可以使用电流感应等方法构建更精细的检测电路,但它们不可避免地需要输出通过专用GPIO捕获的二进制信号.
这对于串行外设来说更容易实现,因为您通常可以发送基本命令并验证您是否得到了响应.
总结以上是内存溢出为你收集整理的android-things – 如何判断外围设备是否连接到GPIO?全部内容,希望文章能够帮你解决android-things – 如何判断外围设备是否连接到GPIO?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)