在我配置完IIC的双机程序后,连接主机与从机后,试了半天,却发现无论如何也没办法成功通讯。而且检查线路也没有错,单片机也正常运行,在主机里打印的“master”和从机里打印的“slave”均能正常打印。那么我就非常奇怪了。然后查了官方资料。最后发现,STM32F1系列的IIC若要实现双机通信,那么线路必须要这样接:
_________________________ _________________________| ______________| ___VDD____ |______________ || | I2C1 | | | | I2C1| || | | R (4.7K) R | | || | SCL(PB6)|_____|________|_______|(PB6)SCL | || | | | | | || | | | | | || | | | | | || | SDA(PB7)|______________|_______|(PB7)SDA | || | | | | || |______________| |______________| || __ | | __ || |__| | | |__| || USER GND|______________________|GND USER || | | ||_STM32F1xx_______________| |_STM32F1xx_______________|
然后使用逻辑分析仪检测数据如下:
对照ASCII即可查证,数据发送正确