STM32F4系列的一主多从I2C无法发送外设地址的问题

zaijzhgh 2017-11-10 07:57:43
使用STM32F40X系列MCU, 外设为两个I2C, MCU作Master, I2C接口设置为100KHz, 采用硬件中断方式读写数据
上拉电阻10K, 2.2K均使用过.
当单独读写其中的一个I2C时, 没有出现问题, 但两个I2C交替不定时读写, 就会出现下图1, 也就是发送了起始条件后, I2C设备地址发不出去就结束了. ACK, EV6, EV7均没有, 如下图2
仿真发现SR1, SR2均为零, DR的值为外设I2C地址, 没有发出去各位, 有没有思路能提供的? 谢谢了.


图1


图2
...全文
485 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
tianxj001 2017-11-11
  • 打赏
  • 举报
回复
所谓当单独读写其中的一个I2C时,先明确,2个I2c设备是不是同时挂在总线上?如果同时挂在总线上,只是程序只对单独一个进行读写,能正确执行。说明你IIC驱动本身应该算已经调试通过了。 如果只是一个挂在总线上才能用,我只能分析是你的IIC驱动还没写好,反正时序部分肯定还有问题。 反之,则可以分析是你轮流读写那部分程序有问题,不是时间冲突就是总线冲突。

27,370

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧