网页设计公司简介代码,长沙网站搭建优化,网页设计师培训机构免费,网页制作的开发平台注意#xff1a;硬件I2C的引脚是固定的 SDA和SCL都是复用到外部引脚。 SDA发送时数据寄存器的数据在数据移位寄存器空闲的状态下进入数据移位寄存器#xff0c;此时会置状态寄存器的TXE为1#xff0c;表示发送寄存器为空#xff0c;然后往数据控制寄存器中一位一位的移送数… 注意硬件I2C的引脚是固定的 SDA和SCL都是复用到外部引脚。 SDA发送时数据寄存器的数据在数据移位寄存器空闲的状态下进入数据移位寄存器此时会置状态寄存器的TXE为1表示发送寄存器为空然后往数据控制寄存器中一位一位的移送数据。接收时数据控制寄存器中的数据一位一位的从引脚移位到数据移位寄存器中当一个数据以为完成后就从数据移位寄存器中转移到数据寄存器同时置RXNE表示接收寄存器非空。自身地址寄存器时STM32作为从机时的地址比较器会比较主机的发出的地址与自身地址是否匹配如果匹配就响应主机的召唤。STM32支持同时响应两个主机的召唤所以有双低地址寄存器。PEC是用来数据校验的模块执行CRC数据校算。
SCL的时钟控制是用来控制SCL的时钟控制寄存器写对应的位电路就会启用对应的功能控制逻辑电路写入控制寄存器可以对电路进行控制读取状态寄存器可以读取电路的状态。 注意使用I2C的时候两个GPIO口都要配置成复用开漏输出的模式。此时是片上外设控制引脚电平。 图中线路对应SDA的GPIO的连个箭头。分别对应输出和输入。
硬件I2C的操作流程 7位主发送 1.产生开始条件 2.EV5标志位表示起始条件已发送发送从机地址然后等待从机应答A如果没有应答就会产生中断 3.EV6事件表示地址发送结束 4.EV8_1事件准备好发送 5.EV8事件表示可以写入下一个数据 6.EV8_2表示数据发送完可以产生终止条件 7位主接收 1.EV5起始条件已经发送 2.寻址接收应答A 3.EV6代表寻址已完成 4.EV6_1:表示数据正在移位 5.EV7表示收到一个字节的数据 6.EV7_1:表示想要结束