STM32F4硬件I2C

[复制链接]
3246|11
手机看帖
扫描二维码
随时随地手机跟帖
电佬|  楼主 | 2019-7-29 21:28 | 显示全部楼层 |阅读模式
本帖最后由 电佬 于 2019-10-28 11:50 编辑

有朋友用过STM32F4的硬件I2C吗?进来交流下喂。我这里有两个程序,一个是与AT24C02通信的,还有一个是与MPU9250通信的。AT24C02读写数据正常,但一用在MPU9250上就不行了,路过的大神请多多指教。PS:代码是用在探索者开发平台上的。

DMP读写数据成功_硬件I2C中断版本1.rar

532.5 KB

完成

DMP读写数据成功_硬件I2C非中断_M4.rar

720.16 KB

完成

DMP读写数据成功_硬件I2C非中断_M3.rar

549.38 KB

完成

使用特权

评论回复
评论
电佬 2019-10-28 11:56 回复TA
@风雪不归客 :嗯嗯,的确是时序的问题,在读数据时,发送器件地址+读之前要先发送停止信号,然后查看总线是否忙,然后再发送其实信号,最后才能发送器件地址+读。 
风雪不归客 2019-8-14 15:09 回复TA
时许问题,估计 

相关帖子

奋斗小范| | 2019-7-30 08:21 | 显示全部楼层
怎么个不行法,描述一下呀

使用特权

评论回复
电佬|  楼主 | 2019-7-30 16:53 | 显示全部楼层
奋斗小范 发表于 2019-7-30 08:21
怎么个不行法,描述一下呀

第一次发,不好意思哈!就是我现在读取的还是原始数据,其实连mpu9250的器件ID都没读取成功(软件模拟的IIC读出来是0x60和0x48),不懂为啥硬件IIC读取出来的数据都是器件地址+1。比如我发送器件地址为0xD0,然后读取mpu9250的任何寄存器值都为0xD1,发送的器件地址为0x68,读取寄存器时是0x69。

使用特权

评论回复
电佬|  楼主 | 2019-7-30 16:55 | 显示全部楼层
本帖最后由 电佬 于 2019-7-30 17:09 编辑

今天下单逻辑分析仪,等到了再仔细看看了

使用特权

评论回复
电佬|  楼主 | 2019-7-30 17:22 | 显示全部楼层
不过可以确定可能是硬件I2C初始化或者I2C读时序的程序有问题!

使用特权

评论回复
bobo233| | 2019-8-4 17:26 | 显示全部楼层
正点原子模拟i2c到时有测试好的mpu9250程序

使用特权

评论回复
电佬|  楼主 | 2019-10-28 11:44 | 显示全部楼层
已经完成了,上面已经更新了可以使用的程序

使用特权

评论回复
liu008422| | 2019-11-1 09:45 | 显示全部楼层

使用特权

评论回复
zhaomb| | 2019-11-21 19:24 | 显示全部楼层
应该数据线空闲状态是高还是低的问题

使用特权

评论回复
zhaomb| | 2020-9-6 16:37 | 显示全部楼层
??

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

21

帖子

0

粉丝