(1)在SCL线发送9个时钟脉冲; (2)由Master保持SDA线为高,直到Slave-Transmitter模式释放SDA执行ACK操作; (3)在ACK操作时,保持SDA线为高; (4)在Master-Receiver和Slave-Transmitter模式都结束后,Master发送一个Stop命令完成初始化总线[1]。 恢复序列如图1所示。 2.1.2 通讯流程 对于具有硬件I2C协议的微处理器,都...
其他设备状态如果是Slave+Transmitter和Master+receiver/Transmitter组合,基本上不可能发生这种情况,首先作为Master,他自己会产生时钟信号并且对SDA做操作,一般不会拉死SDA;如果这时候作为Slave+receiver,他也不会主动控制SDA。 在通信过程中,产生了START或者STOP(非HOST主动发送),此时会产生BEER中断,由于此处是单HOST模式(...
163 case I2C_EVENT_MASTER_MODE_SELECT: //EV5, just sent start bit 164 break; 165 //Receive 166 case I2C_EVENT_MASTER_RECEIVER_MODE_SELECTED: //EV6, just sent addr 167 break; 168 case I2C_EVENT_MASTER_BYTE_RECEIVED: //EV7 169 break; 170 //Transmit 171 case I2C_EVENT_MASTER_TRANSMI...
i2c_flag_get(I2C_BUS[i2c_id], I2C_FLAG_SBSEND));/* send slave address to I2C bus */i2c_master_addressing(I2C_BUS[i2c_id], eeprom_address, I2C
while(I2C_CheckEvent(EEPROM_I2C, I2C_EVENT_MASTER_MODE_SELECT) == ERROR); // EV5事件被检测到,发送设备地址,这里方向要选为接收 I2C_Send7bitAddress(EEPROM_I2C, EEPROM_ADDR, I2C_Direction_Receiver); while(I2C_CheckEvent(EEPROM_I2C, I2C_EVENT_MASTER_RECEIVER_MODE_SELECTED) == ERROR); ...
while (!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_RECEIVER_MODE_SELECTED)); // 接收数据 while (length--) { if (length == 0) { // 最后一个数据,禁用应答 I2C_AcknowledgeConfig(I2C1, DISABLE); } // 等待数据接收完成 while (!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_RECEIVED)); ...
}voidI2C_ReceiveData(uint8_taddress,uint8_t* pBuffer,uint16_tlength){// 发送启动信号I2C_GenerateSTART(I2C1, ENABLE);// 等待启动信号发送完成while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_MODE_SELECT));// 发送从设备地址和读位I2C_Send7bitAddress(I2C1, address, I2C_Direction_Receiver);// ...
其实在学习I2C的时候,会有一个很容易迷惑的点,就是controller和target的关系,还有就是transmitter和receiver的关系。规范中对于这些的定义是如下 如果还是梳理不清楚,那么接下来的这段讲解,应该可以进一步帮助理解 1、Controller-transmitter发送数据给targer-receiver。数据传输的方向不需要变化,target-receiver在接收到每个by...
◆当Slave发送数据给Master时:Slave为Transmitter(发送设备),Master为Receiver(接收设备) I2C总线结构示意图 4. I2C总线工作模式 I2C总线支持五种不同的工作模式,不同的工作模式下SCL时钟频率及其他相关参数有所不同, I2C总线各工作模式详细对比,详见下表。
2)接收器(Receiver):从总线接收数据的器件 3)主机(Master):初始化发送、产生时钟信号和终止发送的器件 4)从机(Slave):被主机寻址的器件 2. I2C总线的信号传输 1) 3种速率可选择 标准模式100kbps、快速模式400kbps、最高速率3.4Mbps 2) 具有特定的传输起始、停止条件 ...