打印

TI I2C 协议栈

[复制链接]
1069|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
azq13158|  楼主 | 2015-10-8 13:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
希望有做过这方面的人帮个忙!

当我使用i2c,在借用TI协议栈里的函数时候,总是会进入下面红色部分,这说明了什么?
是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;
}

相关帖子

沙发
dirtwillfly| | 2015-10-8 17:04 | 只看该作者
HAL_I2C_MASTER mode statuses:
mstAddrAckW  = 0x18,
所以你也要遵循它的这个协议才行

使用特权

评论回复
板凳
lwsn| | 2015-10-9 10:19 | 只看该作者
那就查看这里的变量和相关寄存器状态,看是什么导致的

使用特权

评论回复
地板
september7| | 2015-10-30 09:19 | 只看该作者
估计时检测发过来的数据的。你设置使这个为假就好了

使用特权

评论回复
5
北方小榕树| | 2015-10-31 14:29 | 只看该作者
TI I2C的协议栈,这个在哪有呢?

使用特权

评论回复
6
51xlf| | 2015-10-31 14:58 | 只看该作者
i2c不都一样吗

使用特权

评论回复
7
mmbs| | 2015-10-31 16:26 | 只看该作者
TI的iic有什么特殊的吗?

使用特权

评论回复
8
10299823| | 2015-10-31 18:01 | 只看该作者
判断是否读取响应

使用特权

评论回复
9
643757107| | 2015-10-31 21:20 | 只看该作者
没有做过这个,只用过串口

使用特权

评论回复
10
DreamofOven| | 2015-10-31 21:26 | 只看该作者
单步调试看看寄存器的状态吧

使用特权

评论回复
11
598330983| | 2015-10-31 21:51 | 只看该作者
找个逻辑分析仪测测

使用特权

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

本版积分规则

28

主题

92

帖子

2

粉丝