TI I2C 协议栈

2019-07-25 14:14发布

希望有做过这方面的人帮个忙!

当我使用i2c,在借用TI协议栈里的函数时候,总是会进入下面红 {MOD}部分,这说明了什么?
是master 没有收到slave的ACK吗? 这是不是说明 slave的address有错误呢?



/**************************************************************************************************
* @fn HalI2CWrite
*
* @brief Write to the I2C bus as a Master.
*
* input parameters
*
* @param len - Number of bytes to write.
* @param pBuf - Pointer to the data buffer to write.
*
* output parameters
*
* None.
*
* @return The number of bytes successfully written.
*/

uint8 HalI2CWrite(uint8 len, uint8 *pBuf)
{
  if (i2cMstStrt(0) != mstAddrAckW)
  {
    len = 0;
  }

  for (uint8 cnt = 0; cnt < len; cnt++)
{
  I2C_WRITE(*pBuf++);

  if (I2CSTAT != mstDataAckW)
  {
    if (I2CSTAT == mstDataNackW)
   {
     len = cnt + 1;
   }
   else
  {
    len = cnt;
  }
  break;
}
}

I2C_STOP();

return len;
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
dirtwillfly
1楼-- · 2019-07-25 17:16
 精彩回答 2  元偷偷看……
lwsn
2楼-- · 2019-07-25 21:49
那就查看这里的变量和相关寄存器状态,看是什么导致的
september7
3楼-- · 2019-07-25 23:24
估计时检测发过来的数据的。你设置使这个为假就好了
北方小榕树
4楼-- · 2019-07-26 03:27
TI I2C的协议栈,这个在哪有呢?
51xlf
5楼-- · 2019-07-26 06:23
i2c不都一样吗
mmbs
6楼-- · 2019-07-26 09:27
 精彩回答 2  元偷偷看……

一周热门 更多>