12
返回列表 发新帖
楼主: venom

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

[复制链接]

该用户从未签到

4

主题

30

帖子

0

注册会员

Rank: 2

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

回复:MCU i2c读设备问题

在线仿真读回来的数据为空。。。 
回复 支持 反对

使用道具 举报

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

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2014-8-13 16:14:22 | 显示全部楼层

    RE:MCU i2c读设备问题

    写入硬件地址,再写入读取地址,然后就开始读就可以了。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6020
    最后登录
    2020-9-28
    发表于 2014-9-10 11:15:53 | 显示全部楼层
    venom 发表于 2014-8-11 10:31
    回复第 6 楼 于2014-08-09 09:40:17发表:
    还是把程序发上来看一下吧。要先发送硬件地址,再发送读取地址。 ...

    楼主这波形也太奇怪了,请问你的MMA9553L电路是否参考 [url=https://www.freescale.co
    m/zh-Hans/webapp/sps/site/prod_summary.jsp?code=FRDM-FXS-MULTI&fpsp=1&tab=Documentation_Tab]FRDM-FXS-MULTI: 面向多个Xtrinsic传感器的飞思卡尔Freedom开发平台 文档页面[/url] FRDM-FXS-MULTI  FRDM-FXS-MULTI: Schematics,  Block Diagrams - Supporting information原理图呢?
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6020
    最后登录
    2020-9-28
    发表于 2014-9-10 11:34:16 | 显示全部楼层
    你这个MMA9553传感器的问题,建议按照帖子飞思卡尔产品论坛快速购买通道及SR提交流程提交一个服务请求:
    如果你尚未注册飞思卡尔官网账号,请先点击右侧注册按钮:图标完成注册。
    如果你已有飞思卡尔官网账号,可以点击右侧申请SR按钮:图标提交一个服务请求。最好使用英文描述清楚遇到的问题,以便国内外工程师都能够帮助到你。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    7

    帖子

    0

    新手上路

    Rank: 1

    积分
    35
    最后登录
    2018-9-25
    发表于 2014-9-19 16:20:08 | 显示全部楼层

    回复:MCU i2c读设备问题

    <div style="padding:5px;border:1px dashed #ccc;">回复第 7 楼 于2014-08-11 10:12:45发表:
    <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
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    4

    帖子

    0

    新手上路

    Rank: 1

    积分
    24
    最后登录
    2021-7-30
    发表于 2014-9-24 17:48:35 | 显示全部楼层

    回复:MCU i2c读设备问题

    <div style="padding:5px;border:1px dashed #ccc;">回复第 13 楼 于2014-09-19 16:20:08发表:
    <div style="padding:5px;border:1px dashed #ccc;">回复第 7 楼 于2014-08-11 10:12:45发表:
    <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

    MMA9553 I2C read write examples.pdf

    244.86 KB, 下载次数: 3

    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    7

    帖子

    0

    新手上路

    Rank: 1

    积分
    35
    最后登录
    2018-9-25
    发表于 2014-9-25 11:37:47 | 显示全部楼层

    回复:MCU i2c读设备问题

    <div style="padding:5px;border:1px dashed #ccc;">回复第 14 楼 于2014-09-24 17:48:35发表:
    <div style="padding:5px;border:1px dashed #ccc;">回复第 13 楼 于2014-09-19 16:20:08发表:
    <div style="padding:5px;border:1px dashed #ccc;">回复第 7 楼 于2014-08-11 10:12:45发表:
    <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
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    7

    帖子

    0

    新手上路

    Rank: 1

    积分
    35
    最后登录
    2018-9-25
    发表于 2014-9-25 12:14:42 | 显示全部楼层

    回复:MCU i2c读设备问题

    <div style="padding:5px;border:1px dashed #ccc;">回复第 15 楼 于2014-09-25 11:37:47发表:
    <div style="padding:5px;border:1px dashed #ccc;">回复第 14 楼 于2014-09-24 17:48:35发表:
    <div style="padding:5px;border:1px dashed #ccc;">回复第 13 楼 于2014-09-19 16:20:08发表:
    <div style="padding:5px;border:1px dashed #ccc;">回复第 7 楼 于2014-08-11 10:12:45发表:
    <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
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    4

    帖子

    0

    新手上路

    Rank: 1

    积分
    24
    最后登录
    2021-7-30
    发表于 2014-9-27 10:22:38 | 显示全部楼层

    回复:MCU i2c读设备问题

    <div style="padding:5px;border:1px dashed #ccc;">回复第 16 楼 于2014-09-25 12:14:42发表:
    <div style="padding:5px;border:1px dashed #ccc;">回复第 15 楼 于2014-09-25 11:37:47发表:
    <div style="padding:5px;border:1px dashed #ccc;">回复第 14 楼 于2014-09-24 17:48:35发表:
    <div style="padding:5px;border:1px dashed #ccc;">回复第 13 楼 于2014-09-19 16:20:08发表:
    <div style="padding:5px;border:1px dashed #ccc;">回复第 7 楼 于2014-08-11 10:12:45发表:
    <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
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

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

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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