查看: 5193|回复: 18

[已解决] MCU i2c读设备问题(已解决)

[复制链接]

该用户从未签到

4

主题

30

帖子

0

注册会员

Rank: 2

积分
83
最后登录
1970-1-1
发表于 2014-8-8 15:50:32 | 显示全部楼层 |阅读模式
本帖最后由 FSL_TICS_Robin 于 2014-9-10 11:34 编辑

大家好,继续请教大家问题。
用I2C模块调试,发送正常,但是接受不到数据。
用示波器看了,时钟正常,发送数据也正常。但是接收数据的时候,器件地址写+寄存器地址+RS+读,后面应该是读出的数据,但是波形显示全高。是怎么回事?
我知道答案 目前已有13人回答
回复

使用道具 举报

该用户从未签到

11

主题

354

帖子

0

高级会员

Rank: 4

积分
693
最后登录
1970-1-1
发表于 2014-8-8 16:08:06 | 显示全部楼层

回复:MCU i2c读设备问题

设备地址对不? 寄存器地址呢?
还是应该参考设备i2c协议来操作设备寄存器
回复 支持 反对

使用道具 举报

该用户从未签到

4

主题

30

帖子

0

注册会员

Rank: 2

积分
83
最后登录
1970-1-1
 楼主| 发表于 2014-8-8 16:10:22 | 显示全部楼层

回复:MCU i2c读设备问题

回复第 2 楼 于2014-08-08 16:08:06发表:
设备地址对不? 寄存器地址呢?
还是应该参考设备i2c协议来操作设备寄存器
 
地址都没有问题,波形读出来也是对的。
就是没有读出数据,读指令最后ACK之后,波形显示就全高了
 
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2018-7-2 06:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6020
    最后登录
    2020-9-28
    发表于 2014-8-8 17:23:34 | 显示全部楼层

    回复:MCU i2c读设备问题

    楼主你好
    请问你的MCU具体型号是多少?
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4

    主题

    30

    帖子

    0

    注册会员

    Rank: 2

    积分
    83
    最后登录
    1970-1-1
     楼主| 发表于 2014-8-8 18:08:31 | 显示全部楼层

    回复:MCU i2c读设备问题

    回复第 4 楼 于2014-08-08 17:23:34发表:
    楼主你好
    请问你的MCU具体型号是多少?
    MK60FX512xxx12
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2014-8-9 09:40:17 | 显示全部楼层

    RE:MCU i2c读设备问题

    还是把程序发上来看一下吧。要先发送硬件地址,再发送读取地址。然后置读取标志位。发送完硬件地址以后要重新发送start信号。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4

    主题

    30

    帖子

    0

    注册会员

    Rank: 2

    积分
    83
    最后登录
    1970-1-1
     楼主| 发表于 2014-8-11 10:12:45 | 显示全部楼层

    回复:MCU i2c读设备问题

    <div style="padding:5px;border:1px dashed #ccc;">回复第 6 楼 于2014-08-09 09:40:17发表:
    还是把程序发上来看一下吧。要先发送硬件地址,再发送读取地址。然后置读取标志位。发送完硬件地址以后要重新发送start信号。
     
    这个是我的读寄存器代码:

    void MMA9553L_ReadCfgReg(uint8 RegisterAddress,uint8 *examBuff,uint8 Bytenumber)
    {
     
      uint8 i =0;
     
      //发送从机地址
      I2C_StartTrans(MMA9553L_I2CX, MMA9553L_DEV_ADDR, I2C_MWSR);
      I2C_WaitAck(MMA9553L_I2CX, I2C_ACK_ON);
        
      //写MMA9553L寄存器地址
      I2C_WriteByte(MMA9553L_I2CX, RegisterAddress);
      I2C_WaitAck(MMA9553L_I2CX, I2C_ACK_ON);
     
      //再次产生开始信号
      I2C_ReStart(MMA9553L_I2CX);
     
      //发送从机地址和读取位
      I2C_WriteByte(MMA9553L_I2CX, MMA9553L_DEV_READ);
      I2C_WaitAck(MMA9553L_I2CX, I2C_ACK_ON);
     
      //转换主机模式为读
      I2C_SetMasterWR(MMA9553L_I2CX, I2C_MRSW);
     
      //关闭应答ACK
      I2C_WaitAck(MMA9553L_I2CX, I2C_ACK_OFF);//关闭ACK
     
      //读IIC数据

    for(i=0;i
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4

    主题

    30

    帖子

    0

    注册会员

    Rank: 2

    积分
    83
    最后登录
    1970-1-1
     楼主| 发表于 2014-8-11 10:31:49 | 显示全部楼层

    回复:MCU i2c读设备问题

    回复第 6 楼 于2014-08-09 09:40:17发表:
    还是把程序发上来看一下吧。要先发送硬件地址,再发送读取地址。然后置读取标志位。发送完硬件地址以后要重新发送start信号。
     
    下面是我测的波形,在ACK之后就是全高电平了。。。
     
     
    20140808_170905.jpg
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2014-8-11 10:46:40 | 显示全部楼层

    RE:MCU i2c读设备问题

    应该是先写入硬件地址,然后再发送start,再写入读取I2C设备的数据地址,读取,就可以开始读取了。你是不是停在第二个ACK那了?
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4

    主题

    30

    帖子

    0

    注册会员

    Rank: 2

    积分
    83
    最后登录
    1970-1-1
     楼主| 发表于 2014-8-11 10:57:44 | 显示全部楼层

    回复:MCU i2c读设备问题

    回复第 9 楼 于2014-08-11 10:46:40发表:
    应该是先写入硬件地址,然后再发送start,再写入读取I2C设备的数据地址,读取,就可以开始读取了。你是不是停在第二个ACK那了?
    我是先写入硬件地址的,你看我的波形图里面,硬件地址98,数据地址00,从启动读99,这几个都是有的,ACK之后的接收数据开始就有问题了。
     
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-20 23:35 , Processed in 0.112873 second(s), 31 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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