在运行PyBBIO示例phant_test.py和analog_test.py时,我收到了以下错误(我相信'可能'是一个错误的意思是'不能'):
Traceback (most recent call last):
File "analog_test.py", line 47, in <module>
run(setup, loop)
File "/usr/lib/python2.7/site-packages/PyBBIO-0.9-py2.7-linux-armv7l.egg/bbio/bbio.py", line 63, in run
loop()
File "analog_test.py", line 37, in loop
val1 = analogRead(pot1)
File "/usr/lib/python2.7/site-packages/PyBBIO-0.9-py2.7-linux-armv7l.egg/bbio/platform/beaglebone/bone_3_8/adc.py", line 46, in analogRead
raise Exception('*Could load overlay for adc_pin: %s' % adc_pin)
Exception: *Could load overlay for adc_pin: ['/sys/devices/ocp.2/PyBBIO-AIN0.*/AIN0', 'PyBBIO-AIN0', 'P9.39']
我尝试重新启动BeagleBone(使用3.8内核运行Angstrom的rev A6,没有连接斗篷)来清除/sys/devices/bone_capemgr.7/slots
文件,但这不起作用。似乎PyBBIO正在访问插槽文件并添加叠加层,因为在示例程序运行后,插槽文件看起来像这样:
0: 54:PF---
1: 55:PF---
2: 56:PF---
3: 57:PF---
4: ff:P-O-L Override Board Name,00A0,Override Manuf,PyBBIO-ADC
5: ff:P-O-L Override Board Name,00A0,Override Manuf,PyBBIO-AIN0
由于对slot文件进行了一些更改,我检查了PyBBIO的adc.py文件中analog_read(adc_pin)
函数检索的文件。对于一些打印语句,我发现根本问题是显然存储模拟读取值的/sys/devices/ocp.2/PyBBIO-AIN0.*/AIN0
文件不存在。 glob.glob
函数返回一个空数组,ls /sys/devices/ocp.2/PyBBIO-AIN0.10/
显示modalias power subsystem uevent
作为唯一内容。覆盖文件中有什么问题吗?或者是否有其他程序或问题阻止BeagleBone编写PyBBIO试图读取的AIN0
文件? python代码似乎在逻辑上是正确的,但叠加层工作不正确或以某种方式被阻止。