《小白入门树莓派》 您所在的位置:网站首页 树莓派怎么使用 《小白入门树莓派》

《小白入门树莓派》

2023-09-23 06:14| 来源: 网络整理| 查看: 265

导言: 最近在使用多个i2c设备时,读写出现冲突,我决定使用多个i2c接口,我把摄像头关闭后,使用3B+上的两个i2c同时进行读写操作,两个i2c同时读写。 一、raspi-config配置 1.配置i2c-1端口 和 i2c-0端口的冲突 命令行输入raspi-config打开系统设置,enable i2c通道,disable camera。 记得使用sudo raspi-config

可能有不一样的,我的是在inter...里面设置 使能i2c,disenable camera 2.配置i2c-0的i2c功能 这里我参考了https://blog.csdn.net/weixin_46145842/article/details/106128144 的博客,该说的基本都说了,简单概括一下就是: 把 “/boot/config.txt”文件里加上一句“dtparam=i2c_vc=on”,作用是你的i2c-0就可以当作普通的i2c-0使用了,改之前是camera特用的。 配置文件图 3.具体使用 在如上配置都完成情况下,就可以查一下配置成功了没有。 在命令行输入 i2cdetect -y 0 查到器件地址 可看到我的器件地址是0x68。 之后使用wiringPi库可以对这个器件进行读写。 这里我碰到个问题,我发现wiringPi库只有一个对i2c-1设备进行初始化的函数wiringPiI2CSetup() 使用i2c-0设备时候需要使用他的另一个初始化函数:

extern int wiringPiI2CSetupInterface (const char *device, int devId) ;

关于它和wiringPiI2CSetup()的关系,大家可以看看这个博客: https://www.iteye.com/blog/hulianwang2014-2045263

这个函数有一个返回值,两个传参: 返回值是 文件描述符,第一个传参是设备路径

const char dev[] = "/dev/i2c-0";

第二个参数是器件地址,之前“i2cdetect -y 0”查到的内个。 返回值保存一下,一个文件描述符,后面就和使用普通i2c一样使用wiringPi库给的函数读写就可以了。 使用其他外接进来的可识别i2c设备也是一个道理,把设备路径传进入使用就好。

const char dev[] = "/dev/i2c-0"; int fd; void init() { wiringPiSetup () ; fd = wiringPiI2CSetupInterface ( dev,SlaveAddress); //注意这里文件描述符fd有大用,第一个参数是设备路径,第二个在.h文件 //里,是器件地址0x68 wiringPiI2CWriteReg8(fd,PWR_MGMT_1,0x00); wiringPiI2CWriteReg8(fd,SMPLRT_DIV, 0x07); wiringPiI2CWriteReg8(fd,CONFIG, 0x06); wiringPiI2CWriteReg8(fd,GYRO_CONFIG, 0x18); wiringPiI2CWriteReg8(fd,ACCEL_CONFIG, 0x01); }

以上,有什么没说到的地方望补充。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有