ergelove

    1. 【C2000 LaunchPad】I2C模块应用篇(查询法) 30/14306 微控制器 MCU 2014-12-30
      本帖最后由 ergelove 于 2014-12-30 14:17 编辑
      ltbytyn 发表于 2014-12-30 12:36 发送/接收的时候无需人为判断总线状态。因为28027中的I2C模块是纯硬件的,硬件自己会去检测,在总线空闲的时候发送/接收。“还有为什么要先把地址写进DXR寄存器再写寄存器”没搞懂你的意思想说什么
                  就是如下语句                       I2caRegs.I2CDXR = I2C_EEPROM_HIGH_ADDR;                        //Send eeprom high address            I2caRegs.I2CMDR.bit.TRX = 1;                                 //Set to Transmit mode            I2caRegs.I2CMDR.bit.MST = 1;                                 //Set to Master mode            I2caRegs.I2CMDR.bit.FREE = 1;                                //Run in FREE mode            I2caRegs.I2CMDR.bit.STP = 0;                                 //Dont release the bus after Tx            I2caRegs.I2CMDR.bit.STT = 1;                                 //Send the start bit, transmission will follow            先把eeprom的地址写入DXR寄存器             再写MDR寄存器,为什么这么操作呢,谢谢
    2. 【C2000 LaunchPad】I2C模块应用篇(查询法) 30/14306 微控制器 MCU 2014-12-30
      谢谢,楼主,看了上面的程序,还有几个问题请教,发送或接收数据之前还用查询一下总线的状态吗比如 if (I2caRegs.I2CMDR.bit.STP == 1) 和  if (I2caRegs.I2CSTR.bit.BB == 1) 还有为什么要先把地址写进DXR寄存器再写MDR寄存器            I2caRegs.I2CDXR = I2C_EEPROM_HIGH_ADDR;                        //Send eeprom high address            I2caRegs.I2CMDR.bit.TRX = 1;                                 //Set to Transmit mode            I2caRegs.I2CMDR.bit.MST = 1;                                 //Set to Master mode            I2caRegs.I2CMDR.bit.FREE = 1;                                //Run in FREE mode            I2caRegs.I2CMDR.bit.STP = 0;                                 //Dont release the bus after Tx            I2caRegs.I2CMDR.bit.STT = 1;                                 //Send the start bit, transmission

最近访客

< 1/1 >

统计信息

已有2人来访过

  • 芯积分:--
  • 好友:1
  • 主题:--
  • 回复:2

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言