当使用硬件IIC驱动EEPROM卡死在EV6事件 while(!I2C_CheckEvent(I2C2, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED)) 问题原因:在判断EV6事件的时候,EEPROM此时还在写入数据,我们发送了地址过去,但并没有产生应答 解决方法:在判断EV6事件之前加一个延时,如下图: 当使用硬件IIC主从通信主机卡死在EV6事件 该问题一般...
while(!I2C_CheckEvent(I2C_EVENT_MASTER_RECEIVER_MODE_SELECTED));printf(“rmodeselect2 ”);i...
I2C_CheckEvent(I2C1,I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED));如果不复用结果没问题代码 GPIO_InitTypeDef GPIO_InitStructure /* 使能与 I2C1 有关的时钟 */ RCC_APB2PeriphClockCmd (RCC_APB2Periph_AFIO | RCC_APB2Periph_GPIOB,ENABLE )
while(!I2C_ReadEventStatus(i2c,I2C_EVENT_MASTER_MODE_SELECT));//发送从设备地址 ...
while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED));/* Clear EV6 by setting again the PE bit */I2C_Cmd(I2C1, ENABLE);/* Send the EEPROM's internal address to write to */I2C_SendData(I2C1, ReadAddr);/* Test on EV8 and clear it */while(!I2C_CheckEvent(I2C1...
( !I2C_CheckEvent(I2C1,I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED) ); #if (Address_Lenth== Address_8bit 凤求凰2022-06-07 08:25:10 ANT1M24LR16E没有响应我的I2C命令 1,I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED)){} /* Send address byte. Wait until data has been received */I2C_SendData(...
}while(!I2C_CheckEvent(I2Cx, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED));//检查最近一次 I2C事件...
// 程序会一直卡死在接下来这个while中 while(I2C_CheckEvent(EEPROM_I2C, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED) == ERROR); 解决的方案,就是上面提到的确认轮询。通过不断的产生起始 + 设备地址信号,并检测EEPROM的应答,来判断EEPROM是否已经写入完成,如果应答,则表示写入完成,产生结束条件。这里还有几个操...
while(!I2C_CheckEvent(I2C1,I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED));I2C_SendData(I2C1,Write...
stm32在用mpu6050时iic复用pb8pb9卡在while(!I2C_CheckEvent(I2C1,I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED));如果不复用结果没问题代码GPIO_InitTypeDefGPIO_InitStructure;/*使... stm32 在用mpu6050时 iic 复用pb8 pb9卡在 while(!I2C_CheckEvent(I2C1,I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED));如果...