STATIC void machine_hard_i2c_print(const mp_print_t *print, mp_obj_t self_in, mp_print_kind_t kind) { machine_hard_i2c_obj_t *self = MP_OBJ_TO_PTR(self_in); mp_printf(print, "I2C(%u, freq=%u, timeout=%u)", self - &machine_hard_i2c_obj[0] + 1, pyb_i2c_get_baudrate(self->pyb->i2c), *self->timeout); }
STATIC void pyb_i2c_print(const mp_print_t *print, mp_obj_t self_in, mp_print_kind_t kind) { pyb_i2c_obj_t *self = MP_OBJ_TO_PTR(self_in); uint i2c_num = 0; if (0) { } #if defined(MICROPY_HW_I2C1_SCL) else if (self->i2c->Instance == I2C1) { i2c_num = 1; } #endif #if defined(MICROPY_HW_I2C2_SCL) else if (self->i2c->Instance == I2C2) { i2c_num = 2; } #endif #if defined(MICROPY_HW_I2C3_SCL) else if (self->i2c->Instance == I2C3) { i2c_num = 3; } #endif #if defined(MICROPY_HW_I2C4_SCL) else if (self->i2c->Instance == I2C4) { i2c_num = 4; } #endif if (self->i2c->State == HAL_I2C_STATE_RESET) { mp_printf(print, "I2C(%u)", i2c_num); } else { if (in_master_mode(self)) { mp_printf(print, "I2C(%u, I2C.MASTER, baudrate=%u" #if PYB_I2C_TIMINGR ", timingr=0x%08x" #endif ")", i2c_num, pyb_i2c_get_baudrate(self->i2c) #if PYB_I2C_TIMINGR , self->i2c->Init.Timing #endif ); } else { mp_printf(print, "I2C(%u, I2C.SLAVE, addr=0x%02x)", i2c_num, (self->i2c->Instance->OAR1 >> 1) & 0x7f); } } }