前些天和同学一起调试树莓派IIC总线时碰到让我们很无语的问题。先描述一下我们所遇到的问题吧,方便各位对号入座,我们想用PCF8591实现树莓派对外部模拟信号的处理。但在将PCF8591芯片挂在到树莓派的IIC-1接口(即SDA1与SCL1)上时却死活都检测不到PCF8591芯片的地址。而且气人的是/dev/目录下竟然是有IIC-1的。在排除PCF8591以及树莓派的配置异常之后,开始怀疑是IIC-1接口损坏或异常,改用IIC-0接口后可以检测到PCF8591芯片的地址就正常了。其实相对而言这类硬件损坏而导致的问题是最让我觉得难受的,之前我也遇到过类似问题,这会将很简单的问题搞得无从下手,很头疼。有一张图可以较为形象的表示我调试时的心情:无效调试最为致命
言归正传,在官方文档中提到树莓派中IIC-1接口常用来挂在总线设备,直接挂载一个或通过扩展板挂载一串,IIC-0接口则常用来链接摄像头或者是屏幕这类的外接设备。如果想使用IIC-0接口挂载常规IIC总线设备需要进行相关配置才可以。
先打开终端配置raspi-config,
sudo raspi-config
然后选中里面的Interface Options通道。再选中Camera,选择disable camera。然后退出。
然后还需要再/boot/config.txt文件中配置。说白了就是再config.txt中加上下面这句话就行。