neven_li
2015-10-08 05:56在使用 TI 的 i2c 时遇到,数据通过i2c写不进去,是address出错了吗
希望有做过这方面的人帮个忙!
当我使用i2c,在借用TI协议栈里的函数时候,总是会进入 len = 0,这说明了什么?
是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;
}
- 点赞
- 回答
- 收藏
- 复制链接分享
0条回答
为你推荐
- 不重定向来自移动设备的某些网址[重复]
- url-rewriting
- url
- redirect
- php
- 2个回答
- 使用Google Maps Api(JSON)获取两个位置之间的距离
- json
- php
- 1个回答
- .htaccess重写规则将虚拟“.html”文件重写为带有get参数的页面,不起作用
- apache
- html
- php
- 1个回答