while(I2C_CheckEvent(EEPROM_I2C, I2C_EVENT_MASTER_RECEIVER_MODE_SELECTED) == ERROR); // 判断是否为最后一个字节 while (numByteToRead) { if (numByteToRead == 1) { // 最后一个字节,产生非应答 I2C_AcknowledgeConfig(EEPROM_I2C, DISABLE); } while(I2C_CheckEvent(EEPROM_I2C, I2C_EVENT_MASTER_...
1,I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED)!=SUCCESS);I2C_SendData(I2C1, 0x00);/* 等待从应答 */while(I2C_CheckEvent(I2C LingMao2019-02-18 07:02:24 I2C和pcf8591通讯第一次成功,第二次却卡住了 (!I2C_CheckEvent(I2C1,I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED));// RECEIVERprintf("2...\...
I2C_CheckEvent(EEPROM_I2C, I2C_EVENT_MASTER_RECEIVER_MODE_SELECTED)) { if ((I2CTimeout--) == 0) return I2C_TIMEOUT_UserCallback(14); } /* 读取NumByteToRead个数据*/ while (NumByteToRead) { /*若NumByteToRead=1,表示已经接收到最后一个数据了, 发送非应答信号,结束传输*/ if (NumByte...
while(!I2C_ReadEventStatus(i2c,I2C_EVENT_MASTER_MODE_SELECT));//发送从设备地址 ...
需要注意:EV6实际有2个定义,分别代表Master写就绪和Master读就绪, 都称为EV6,但实际不会冲突,因为它们是出现在不同的模式种。 EV6(Write):I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED EV6(Read):I2C_EVENT_MASTER_RECEIVER_MODE_SELECTED 4、代码示例 ...
I2C_Send7bitAddress(I2C1, EEPROM_ADDRESS, I2C_Direction_Receiver);//向指定的从 I2C设备传送地址字,选择接收方向 /* Test on EV6 and clear it */ while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_RECEIVER_MODE_SELECTED));//检查最近一次 I2C事件是否是输入的事件 ...
}else{while(I2C_CheckEvent(USER_I2C, I2C_EVENT_MASTER_RECEIVER_MODE_SELECTED) ==RESET); mini_i2c_dma_config((uint32_t)data, data_num, USER_I2C_DMA_DIR_RX);//Inform the DMA that the next End Of Transfer Signal will be the last oneI2C_DMALastTransferCmd(USER_I2C, ENABLE); ...
I2C_CheckEvent(I2Cx, I2C_EVENT_MASTER_RECEIVER_MODE_SELECTED)) { if((I2CTimeout--) == 0) return I2C_TIMEOUT_UserCallback(14); // 返回错误码14,代表读取多个数据发送I2C地址信号超时 } while(NumByteToRead) // 循环读入数据 { if(NumByteToRead == 1) // 最后一次读入数据 { I2C_Acknowledge...
stm32 iic 复用 卡在while(!I2C_CheckEvent(I2C1,I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED))stm32 在用mpu6050时 iic 复用pb8 pb9卡在 while(!I2C_CheckEvent(I2C1,I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED));如果不复用结果没问题代码 GPIO_InitTypeDef GPIO_InitStructure /* 使能与 I2C1 有关的时钟 ...
//当最后一个事件为I2C_EVENT_MASTER_RECEIVER_MODE_SELECTED事件时,说明选择I2C进行主机接收,跳过此while循环,进行下一步数据接收 while( !I2C_CheckEvent( I2C1, I2C_EVENT_MASTER_RECEIVER_MODE_SELECTED ) ); while( i<7 ) { //此循环是对发送数据前五个值的接收 if( i<5 ) { if( I2C_GetFlagStatu...