IIC从机的Acknowledge信号问题 iic总线从机没有返回应答给主机

IIC\u603b\u7ebf\u7684\u5e94\u7b54\u4fe1\u53f7\u95ee\u9898

1\u3001\u9996\u5148IIC\u901a\u4fe1\u8981\u5206\u6e05\u4e3b\u673a\u4e0e\u4ece\u673a\u7684\u5173\u7cfb\uff0c\u5728\u4e3b\u673a\u5bf9\u4ece\u673a\u8fdb\u884c\u5199\u64cd\u4f5c\u65f6\uff0c\u4e00\u822c\u662f\u5728\u4f20\u9001\u5b8c\u4e00\u4e2a\u6570\u636e\u4e4b\u540e\u5355\u7247\u673a\u5c31\u8fdb\u5165\u68c0\u6d4b\u5e94\u7b54\u4fe1\u53f7\u72b6\u6001\uff1a\u5148\u5c06\u4e24\u4e2a\u811a\u7f6e\u4f4dSDA=1\uff1bSCL=1\uff1b\u7136\u540e\u5728\u4e00\u5b9a\u65f6\u95f4\u5185\u4e0d\u65ad\u68c0\u6d4bSDA\u811a\u7684\u7535\u5e73\u72b6\u6001\uff0c\u6bd4\u5982\u8bf4\u4f60\u5f04\u4e2a\u5faa\u73affor(i=255;i>0;i--){..;if(...)break;...}\u8fdb\u884c\u4e0d\u65ad\u5224\u65ad\uff0c\u5f53SDA\u7684\u7535\u5e73\u4e3a\u4f4e\u65f6\u5c31\u8df3\u51fa\u5faa\u73af\uff0c\u8bf4\u660e\u6b64\u65f6\u4ece\u673a\u5df2\u7ecfACK\uff0c\u5c31\u53ef\u8bf4\u660e\u662fI2C\u5668\u4ef6\u62c9\u4f4e\uff1b\u5982\u679c\u4e3a\u9ad8\u65f6\uff0c\u5219\u4e00\u76f4\u5224\u65ad\u5b8c\u6574\u4e2a\u5faa\u73af\uff0c\u5230\u6700\u540e\u8fd8\u4e3a\u9ad8\u65f6\uff0c\u5c31\u8bf4\u660e\u6ca1\u6709\u5e94\u7b54\u3002
2\u3001\u5199\u5e94\u7b54\u548c\u8bfb\u5e94\u7b54\u80af\u5b9a\u6709\u6240\u533a\u522b\u7684\u3002\u5199\u5e94\u7b54\u662f\u5728\u4f60\u8bfb\u4ece\u673a\u6570\u636e\u671f\u95f4\uff0c\u5f53\u4f60\u63a5\u6536\u5230\u4e00\u4e2a\u6570\u636e\u65f6\uff0c\u53ef\u4ee5\u5e94\u7b54\u7684(\u60f3\u7ee7\u7eed\u901a\u4fe1\u5c31\u5e94\u7b54)\uff0c\u5c31\u5c06SDA\u590d\u4f4d(\u62c9\u4f4e),\u4e0d\u60f3\u5e94\u7b54(\u60f3\u7ed3\u675f\u901a\u4fe1\u65f6)\u5c31\u7f6e\u4f4d(SDA=1)\u3002\u8bfb\u5e94\u7b54\u5219\u5728\u4e3b\u673a\u5199\u6570\u636e\u7ed9\u4ece\u673a\u671f\u95f4\uff0c\u6bcf\u5f53\u4ece\u673a\u63a5\u6536\u5230\u4e00\u4e2a\u6570\u636e\u5c31\u4f1a\u5e94\u7b54\u4e00\u4e0b(\u5c06\u6570\u636eSDA\u7ebf\u62c9\u4f4e)\uff0c\u4e3b\u673a\u5c06\u4e0d\u65ad\u68c0\u6d4bSDA\u7ebf\u7684\u7535\u5e73\uff0c\u4e3b\u673a\u5c31\u662f\u51edSDA\u7684\u7535\u5e73\u72b6\u6001\u624d\u77e5\u9053\u4ece\u673a\u662f\u5426\u5df2\u7ecf\u6b63\u786e\u5730\u63a5\u6536\u4e86\u4e3b\u673a\u53d1\u9001\u7684\u6570\u636e\u3002

\u786c\u4ef6\u4e0a\u68c0\u67e5\u4e0biic\u8bbe\u5907\u6709\u6ca1\u6709\u865a\u710a\uff0c\u603b\u7ebf\u6709\u6ca1\u6709\u51b2\u7a81\uff0c\u793a\u6ce2\u5668\u70b9\u4e0bscl\u548csda\u7ebf\u6709\u6ca1\u6709\u534a\u9ad8\u7535\u5e73\uff1b
\u5982\u679c\u4f60\u7684\u4ee3\u7801\u4e0d\u4fdd\u8bc1\u662f\u6210\u719f\u7684\uff0c\u5efa\u8bae\u793a\u6ce2\u5668\u89e6\u53d1\u4e00\u4e0b\u770b\u770b\u65f6\u5e8f\u6ee1\u4e0d\u6ee1\u8db3iic\u534f\u8bae\u8981\u6c42\uff1b
\u8bfb\u51fa\u7684\u6570\u636e\u662f\u603b\u7ebf\u9ed8\u8ba4\u72b6\u6001ff\uff0c\u8bf4\u660e\u8bbe\u5907\u6ca1\u54cd\u5e94\uff0c\u6700\u6709\u53ef\u80fd\uff1a
\u5730\u5740\u4e0d\u5bf9\uff1b
\u65f6\u5e8f\u4e0d\u5bf9\uff1b
\u901f\u7387\u4e0d\u5339\u914d\u3002

从你的程序片段的注释来看 "//从机响应信号", 猜测这个部分可能是从机的处理程序, 从机在检测到SCL的下降沿的时候, 要送出ACK. 所以当然检测SCL了.

由于只有部分代码, 而且不知道ADD2的处理内容, 你确定ADD2是发送BYTE_ADDR?

24C01/02/04/08/16器件可以不考虑应答位,这里没有应答位。机响应不是拉低SDA,主机应该设置为高阻态input,直接主机拉低是不行的。

扩展阅读:www.sony.com.cn ... icloud查找我的iphone ... 高清线hdmi ... 查找我的iphone登录 ... 进入iphone官网查序列号 ... 国产任天堂switch手柄 ... 苹果iphone官网入口 ... a7 a7m2 ... apple id 注册 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网