static void i2c_setup(const device_info_t *device_info) { i2c_set_address(device_info->slave_address); if (device_info->fast_mode) { i2c_set_baudrate(I2C_FULL_SPEED); } else { i2c_set_baudrate(I2C_NORMAL_SPEED); } }
void Tc1602::Setup(void) { i2c_set_address(m_nSlaveAddress); if (bFastMode) { i2c_set_baudrate(I2C_FULL_SPEED); } else { i2c_set_baudrate(I2C_NORMAL_SPEED); } }
int main(int argc, char **argv) { uint8_t first = 0x03, last = 0x77; uint8_t i, j; uint8_t address; if (!i2c_begin()) { return -1; } i2c_set_baudrate(I2C_NORMAL_SPEED); printf("[V%s] Compiled on %s at %s\n\n", SOFTWARE_VERSION, __DATE__, __TIME__); for (address = 0x00; address <= 0x7F; address++) { /* Skip unwanted addresses */ if (address < first || address > last) { continue; } if (i2c_is_connected(address)) { printf("0x%.2X : 0x%.2X : %s\n", (unsigned int) address, (unsigned int) (address << 1), i2c_lookup_device(address)); } } puts("\n 0 1 2 3 4 5 6 7 8 9 a b c d e f"); for (i = 0; i < 128; i += 16) { printf("%02x: ", (unsigned int) i); for (j = 0; j < 16; j++) { /* Skip unwanted addresses */ if (i + j < first || i + j > last) { printf(" "); continue; } if (i2c_is_connected((i + j))) { printf("%02x ", (unsigned int) (i + j)); } else { printf("-- "); } } puts(""); } return 0; }
void i2c_init_freq(const pyb_i2c_obj_t *self, mp_int_t freq) { I2C_InitTypeDef *init = &self->i2c->Init; init->AddressingMode = I2C_ADDRESSINGMODE_7BIT; init->DualAddressMode = I2C_DUALADDRESS_DISABLED; init->GeneralCallMode = I2C_GENERALCALL_DISABLED; init->NoStretchMode = I2C_NOSTRETCH_DISABLE; init->OwnAddress1 = PYB_I2C_MASTER_ADDRESS; init->OwnAddress2 = 0; // unused if (freq != -1) { i2c_set_baudrate(init, MIN(freq, MICROPY_HW_I2C_BAUDRATE_MAX)); } *self->use_dma = false; // init the I2C bus i2c_deinit(self->i2c); i2c_init(self->i2c); }