1 硬件实现协议: stm32的硬件IIC,在某些情况下会出现错误,但也没有必要去纠结这个问题。 STM32的I2C外设可用作通讯的主机及从机,支持100Kbit/s和400Kbit/s的速率,支持7位、10位设备地址,支持DMA数据传输,并具有数据校验功能。 IIC1 IIC2 2 时钟控制逻辑 这里计算分频系数,如何理解? 连接到SDA引脚。 PEC(帧校验)寄存器以及SDA数据线。 当向外发送数据的时候,数据移位寄存器以“数据寄存器”为数据源,把数据一位一位地通过SDA信号线发送出去; 4 整体控制逻辑 整体控制逻辑负责协调整个I2C外设,控制逻辑的工作模式根据我们配置的“控制寄存器(CR1/CR2)”的参数而改变。其中,CR1寄存器控制各种起始、结束的使能,CR2寄存器管理中断。 还有一个比较重要的地方: 配置的是CR2寄存器的FREQ[5:0]位: 在外设工作时,控制逻辑会根据外设的工作状态修改“状态寄存器(SR1和SR2)”,只要读取这些寄存器相关的寄存器位,就可以了解I2C的工作状态,这个非常重要,我们编程时要参考这些标志位。接下来,详细的看一下每个标志位的意义。 这些标志位,对应了IIC的时序图种,产生的各种事件标志。
|