找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2684|回复: 9
收起左侧

求大佬帮忙一下关于i2c总线同时驱动2个器件的问题

[复制链接]
回帖奖励 1 黑币 回复本帖可获得 1 黑币奖励! 每人限 1 次
ID:451968 发表于 2019-10-31 17:04 | 显示全部楼层 |阅读模式
请问下,我用stm32同时用软件i2c来通讯mpu6050和oled,然后单独用的时候是可以的。合并在一起2者都不能用的,请问下这该怎么解决,是和中断或者其他有关吗
回复

使用道具 举报

ID:105364 发表于 2019-10-31 18:14 | 显示全部楼层
2 个器件的I2C地址不一样没?
回复

使用道具 举报

ID:451968 发表于 2019-11-1 00:20 | 显示全部楼层
47okey 发表于 2019-10-31 18:14
2 个器件的I2C地址不一样没?

不一样的,现在我想知道是不是因为oled显示的时候mpu产生中断导致oled还没运行完就跑去中断那边了
回复

使用道具 举报

ID:616759 发表于 2019-11-1 10:32 | 显示全部楼层
你好像和我遇到了同样的问题,不过这个月出差出掉了,一直没弄,OLED直接显示时卡死,我准备这周(可能没时间,要走亲戚)或者下周弄一下这个,到时如果解决了再回来跟你说
回复

使用道具 举报

ID:451968 发表于 2019-11-1 11:24 | 显示全部楼层
bai_yun_123 发表于 2019-11-1 10:32
你好像和我遇到了同样的问题,不过这个月出差出掉了,一直没弄,OLED直接显示时卡死,我准备这周(可能没时 ...

对,就是一直在那个oled中的应答出现问题,还请多多指教
回复

使用道具 举报

ID:633767 发表于 2019-11-1 12:00 | 显示全部楼层
设置两个器件地址不一样或者多接一个时钟,两个器件分别用不同的CLK驱动
回复

使用道具 举报

ID:633773 发表于 2019-11-1 12:06 | 显示全部楼层
中断分别控制
回复

使用道具 举报

ID:451968 发表于 2019-11-1 13:46 | 显示全部楼层
小柿子 发表于 2019-11-1 12:00
设置两个器件地址不一样或者多接一个时钟,两个器件分别用不同的CLK驱动

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

使用道具 举报

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

使用道具 举报

ID:451968 发表于 2019-11-1 19:55 | 显示全部楼层
QIXINCCY 发表于 2019-11-1 13:59
我有类似的设计经验,驱动OLED,然后同时控制I2C或者SPI的其他设备,现在能够稳定的工作了。分开调试,然后 ...

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

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表