I2C_ReadEventStatus(i2c,I2C_EVENT_MASTER_RECEIVER_MODE_SELECTED)){}while(NumByteToRead){//读到...
I2C_CheckEvent(I2C1,I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED));如果不复用结果没问题代码 GPIO_InitTypeDef GPIO_InitStructure /* 使能与 I2C1 有关的时钟 */ RCC_APB2PeriphClockCmd (RCC_APB2Periph_AFIO | RCC_APB2Periph_GPIOB,ENABLE )
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...\...
MODE_SELECTED事件时,说明I2C进行主机接收,跳过此while,进行下一步数据接收 while( !I2C_CheckEvent( I2C, I2C_EVENT_MASTER_RECEIVER_MODE_SELECTED ) ); ( i<7 { //此循环是对发送数据五个值的接收 if( i<5 ) { if( _GetFlagStatus( I2C1, I2C_FLAG_RXNE ) != RESET ) { ...
需要注意:EV6实际有2个定义,分别代表Master写就绪和Master读就绪, 都称为EV6,但实际不会冲突,因为它们是出现在不同的模式种。 EV6(Write):I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED EV6(Read):I2C_EVENT_MASTER_RECEIVER_MODE_SELECTED 4、代码示例 ...
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(I2C_EVENT_MASTER_MODE_SELECT)); /* 5.设备地址/读 */ I2C_Send7bitAddress(EEPROM_DEV_ADDR, I2C_DIRECTION_RX); while(!I2C_CheckEvent(I2C_EVENT_MASTER_RECEIVER_MODE_SELECTED)); /* 6.读一字节数据 */ I2C_AcknowledgeConfig(I2C_ACK_NONE); ...
I2C_Send7bitAddress(EE_I2C, dev_addr, I2C_Direction_Receiver); if (0 != i2c_check_event(I2C_EVENT_MASTER_RECEIVER_MODE_SELECTED)) { /* EV6 */ printf("%s, i2c send 7bit address error, read !\r\n", __FUNCTION__); return 0; ...
I2C_CheckEvent(I2C1,I2C_EVENT_MASTER_RECEIVER_MODE_SELECTED))/* BUSY, MSL, ADDR, TXE and TRA flags */ { //防止超时 count++; if(count == I2CTimeOut) { I2C_GenerateSTOP(I2C1,ENABLE); return -3; //没有产生EV6事件,导致超时返回 -3 } } //4.发送器件内部地址 count = 0; 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); ...