STM32-软件IIC
本章介绍使用IO口模拟IIC。
I2C物理层
SCL:时钟信号线 SDA:数据信号线
由上拉电阻保证IIC总线空闲状态下为高电平。
数据有效性规定
SCL为高电平时,SDA要保持电平稳定。
SCL为低电平时,SDA才允许数据变化。
数据传输以字节为单位,高位先行。
起始和停止时序
SCL为高电平时,SDA由高电平变为低电平的下降沿。———— 起始信号
SCL为高电平时,SDA由低电平变为高电平的上降沿。———— 停止信号
起始和停止都是由主机发出。起始时序后,总线处于占用状态,停止时序后,总线处于空闲状态(高电平)。
应答时序和非应答时序
主机或从机发送一个字节的数据后,需要紧跟一个应答信号。
谁接收谁应答。不想接收就不应答。
SCL高电平,SDA被接收方拉低。———— 应答时序
SCL高电平,SDA没有被拉低。———— 非应答时序
注:非应答后会紧跟着停止信号。
数据传输
1 | $ printf("Hello!"); |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 擎擎擎擎的 Blog...!