¿Se podrían enviar dos señales de INICIO I2C una tras otra sin que se haya enviado una señal de PARADA? A continuación se muestra un ejemplo de bit bitging, donde no hay STOP entre el primer y el segundo START:
int16_t BMP180_readRegister16(uint8_t reg) {
i2c_start();
i2c_writeByte(BMP180_ADDRESS);
if(!i2c_check_ack()){
i2c_stop();
return(0);
}
i2c_writeByte(reg);
if(!i2c_check_ack()){
i2c_stop();
return(0);
}
i2c_start();
i2c_writeByte(BMP180_ADDRESS+1);
if(!i2c_check_ack()){
//os_printf("slave not ack..\n return \n");
i2c_stop();
return(0);
}
uint8_t msb = i2c_readByte();
i2c_send_ack(1);
uint8_t lsb = i2c_readByte();
i2c_send_ack(0);
i2c_stop();
int16_t res = msb << 8;
res += lsb;
return res;
}
¿No es necesario que cada secuencia de INICIO esté cerrada por una secuencia de DETENER?
Gracias