工作与树莓派和接口与Adafruit MMA8451加速度计板。我正在尝试一个新的安装巴斯特后,我有所有这些工作在伸展。我已经安装了所有最新的库并完成了所有最新的更新。我能够有MMA8451显示使用
sudo i2cdetect -y 1
在它的正确位置0x1D。当我尝试的例子程序,我通常得到这一大块错误代码:
Traceback (most recent call last):
File "Downloads/simpletest.py", line 15, in <module>
sensor = adafruit_mma8451.MMA8451(i2c)
File "/usr/local/lib/python3.7/dist-packages/adafruit_mma8451.py", line 103, in __init__
while self._read_u8(_MMA8451_REG_CTRL_REG2) & 0x40 > 0:
File "/usr/local/lib/python3.7/dist-packages/adafruit_mma8451.py", line 134, in _read_u8
self._read_into(address, self._BUFFER, count=1)
File "/usr/local/lib/python3.7/dist-packages/adafruit_mma8451.py", line 130, in _read_into
in_end=count)
File "/usr/local/lib/python3.7/dist-packages/adafruit_bus_device/i2c_device.py", line 150, in write_then_readinto
in_start=in_start, in_end=in_end)
File "/usr/local/lib/python3.7/dist-packages/busio.py", line 89, in writeto_then_readfrom
in_start=in_start, in_end=in_end, stop=stop)
File "/usr/local/lib/python3.7/dist-packages/adafruit_blinka/microcontroller/generic_linux/i2c.py", line 61, in writeto_then_readfrom
readin = self._i2c_bus.read_i2c_block_data(address, buffer_out[out_start:out_end], in_end-in_start)
File "/usr/local/lib/python3.7/dist-packages/Adafruit_PureIO/smbus.py", line 227, in read_i2c_block_data
ioctl(self._device.fileno(), I2C_RDWR, request)
OSError: [Errno 121] Remote I/O error
最让人抓狂的是,有时候整件事都会奏效。有什么我可以检查的吗?我以前做过这个,所以我认为这是软件问题,而不是硬件问题。我尝试了树莓派3和树莓派4的板,都给出了相同的错误无数次。 问题来源StackOverflow 地址:/questions/59380566/adafruit-mm8451-raspberry-pi-spi-error-121-with-buster
我想我找到了解决办法。不确定这是巴斯特引起的还是别的什么。 我进入/boot/config.txt并添加
core_freq=500
core_freq_min=500
dtparm=i2c_arm=on,i2c_arm_baudrate=10000
这似乎让它每次都能正常工作,而不是出现通信错误。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。