1、主控MCU采用STM32F103RC芯片,模块采用TMF8801模块,采用IIC通讯,收到的IIC波形如下所示,接收不到IIC中从机应答,各位看看怎么回事?
2、以下是发送函数
3、等待应答函数如下
4、端口定义
5、原理图
https://blog.csdn.net/qq_31626741/article/details/80020355
SCL、SDA两个引脚要加上拉电阻
从波形开I2c开始条件都不对,后面怎么做都是浮云
你这个IO似乎配的不大对啊 IIC要求是集电极开路OC(5/6/7) 配上上拉电阻 你这用的是PUSH-PULL(8)吧,
在发完第一个地址时 正常是OC输出高 设备将总线拉低表示ACK
如果是PUSH-PULL 设备不见能把电平拉下来 你自然检测不到ACK
设成OC输出时可以从IDR读回总线电平 所以这里应该把两个IO都设成OC(6)模式 不需要设成INPUT(3)
另外 有好好的IIC外设不用 非要用IO模拟 不知道这里是什么考虑