标题: 求大佬帮忙一下关于i2c总线同时驱动2个器件的问题 [打印本页]

作者: 小小虾的孩子    时间: 2019-10-31 17:04
标题: 求大佬帮忙一下关于i2c总线同时驱动2个器件的问题
请问下,我用stm32同时用软件i2c来通讯mpu6050和oled,然后单独用的时候是可以的。合并在一起2者都不能用的,请问下这该怎么解决,是和中断或者其他有关吗

作者: 47okey    时间: 2019-10-31 18:14
2 个器件的I2C地址不一样没?
作者: 小小虾的孩子    时间: 2019-11-1 00:20
47okey 发表于 2019-10-31 18:14
2 个器件的I2C地址不一样没?

不一样的,现在我想知道是不是因为oled显示的时候mpu产生中断导致oled还没运行完就跑去中断那边了
作者: bai_yun_123    时间: 2019-11-1 10:32
你好像和我遇到了同样的问题,不过这个月出差出掉了,一直没弄,OLED直接显示时卡死,我准备这周(可能没时间,要走亲戚)或者下周弄一下这个,到时如果解决了再回来跟你说
作者: 小小虾的孩子    时间: 2019-11-1 11:24
bai_yun_123 发表于 2019-11-1 10:32
你好像和我遇到了同样的问题,不过这个月出差出掉了,一直没弄,OLED直接显示时卡死,我准备这周(可能没时 ...

对,就是一直在那个oled中的应答出现问题,还请多多指教
作者: 小柿子    时间: 2019-11-1 12:00
设置两个器件地址不一样或者多接一个时钟,两个器件分别用不同的CLK驱动

作者: JiangChao2019    时间: 2019-11-1 12:06
中断分别控制
作者: 小小虾的孩子    时间: 2019-11-1 13:46
小柿子 发表于 2019-11-1 12:00
设置两个器件地址不一样或者多接一个时钟,两个器件分别用不同的CLK驱动

不是地址问题,我找到了原因;我用的是模拟i2c,因为mpu6050中会产生一个中断,而oled显示的时候被这个中断所影响,导致了oled显示不完全,求大佬有没有好的处理关于I2C在通讯过程中产生中断得怎么应付?

作者: QIXINCCY    时间: 2019-11-1 13:59
我有类似的设计经验,驱动OLED,然后同时控制I2C或者SPI的其他设备,现在能够稳定的工作了。分开调试,然后合并思路没问题。分开可以用,表示模块工作正常了。合并不能工作,倾向于认为还是有干扰。我的方法是,合并后的代码,可以分块注释代码,先注释大段的代码,看看到底是那里的影响,然后在调试。这个方法一样都可以调试OK
作者: 小小虾的孩子    时间: 2019-11-1 19:55
QIXINCCY 发表于 2019-11-1 13:59
我有类似的设计经验,驱动OLED,然后同时控制I2C或者SPI的其他设备,现在能够稳定的工作了。分开调试,然后 ...

我就是按照你这种方法去注释掉一些代码,发现是mpu6050产生的中断 导致这样子的,然后我想问一下关于I2C通讯过程中有中断给打断得怎么办





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1