En primer lugar, consulte mi otra pregunta AQUÍ como está relacionado (cualquier ayuda con eso es muy apreciada también).
Si leyó mi otra pregunta, sabrá que estoy intentando establecer una interfaz con un sensor magnético IC, el MLX90393 , en el Sparkfun Breakout Board .
He tenido problemas para leer los datos y confío en que el problema está en el código, no en el hardware. La razón de esto, es cuando uso el ARDUINO EJEMPLO CÓDIGO en GitHub, con el Arduino IDE (aún usando el hardware STM32 Nucleo), todo funciona y puedo leer los datos del sensor. Sin embargo, cuando intenté convertir ese código a mbed, recibí un error y no puedo extraer los datos.
Ahora he decidido ver qué pasaría al intentar hacer un escaneo para encontrar la dirección. Previoulsy, al realizar una exploración I2C en el IDE mbed, recibí un ACK de cada dirección. El código que utilicé fue AQUÍ . Cuando ejecuto este código, esta es la respuesta que obtuve:
Tengaencuentaqueagreguéun\nadicionaldespuésde"Dispositivo I2C encontrado en ..." para que no se desplace por la pantalla. Tenga en cuenta que lo he intentado con el Error == 0 y 1. Cuando uso el Error == 0 para mbed, aparece "No se encontraron dispositivos"
Esto es casi una copia exacta del escáner Arduino I2C, que se puede encontrar AQUÍ . Mirando a través de los 2, básicamente son exactamente iguales, y no puedo encontrar la diferencia entre ellos (tenga en cuenta que esta es la primera vez que trabajo con I2C). Cuando ejecuto este código en el mismo hardware pero a través del IDE de Arduino, esto es lo que obtengo:
¿Alguien tiene alguna idea de por qué sucede esto? ¿Cuál es la diferencia entre hacer esto con el IDE de Arduino y el mbed? Espero que resolver este problema pueda ayudar a resolver el problema con mi otra pregunta, pero esto es realmente frustrante. He intentado cambiar los pullups I2C a diferentes valores y eso tampoco tuvo ningún efecto.