打印

STM32F4硬件I2C

[复制链接]
3671|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 编辑

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

使用特权

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

使用特权

评论回复
6
bobo233| | 2019-8-4 17:26 | 只看该作者
正点原子模拟i2c到时有测试好的mpu9250程序

使用特权

评论回复
7
电佬|  楼主 | 2019-10-28 11:44 | 只看该作者
已经完成了,上面已经更新了可以使用的程序

使用特权

评论回复
8
liu008422| | 2019-11-1 09:45 | 只看该作者

使用特权

评论回复
9
zhaomb| | 2019-11-21 19:24 | 只看该作者
应该数据线空闲状态是高还是低的问题

使用特权

评论回复
10
zhaomb| | 2020-9-6 16:37 | 只看该作者
??

使用特权

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

本版积分规则

1

主题

21

帖子

0

粉丝