Exemplo n.º 1
0
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);
}
Exemplo n.º 2
0
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);
        }
    }
}