在我配置完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即可查证,数据发送正确