【I2C总线传输数据原理】
I2C是同步半双工的通信方式,主机和从机依赖于同一根时钟线,通过SCL和SDL两根线相互配合传输数据。先查看硬件原理图
从上面两张硬件原理图可知从机(温湿度传感器)通过I2C总线连接到本单片机的PF14,PF15引脚。所以对于主机来说依旧需要使用到GPIO模块,并使用通过控制GPIO模块的输出、输入的高低电平来实现与从机的通信。所以本次的大致工作框图如下:
本次实验不使用I2C控制器操控GPIO模块,纯纯手敲对GPIO两个引脚的控制实现通信
【GPIO模块】
对于该模块的操作只有一个RCC使能,将RCC_MP_AHB4ENSETR寄存器的第五位设置为1即可。由于要实现主机和从机之间的通信需要大量切换两个引脚的输出/输入模式,本实验直接使用现成的I2C库函数了.
【温湿度传感器】
本实验使用的温湿度传感器是SI7006芯片,具体工作框图如下: