Skip to content
Snippets Groups Projects
Commit eaef6b53 authored by Radomir Dopieralski's avatar Radomir Dopieralski Committed by Damien George
Browse files

extmod/machine_i2c: Use writes not reads in i2c.scan().

As per discussion in #2449, using write requests instead of read requests
for I2C.scan() seems to support a larger number of devices, especially
ones that are write-only.  Even a read-only I2C device has to implement
writes in order to be able to receive the address of the register to read.
parent 9e1dec18
No related branches found
No related tags found
No related merge requests found
......@@ -272,7 +272,7 @@ STATIC mp_obj_t machine_i2c_scan(mp_obj_t self_in) {
// 7-bit addresses 0b0000xxx and 0b1111xxx are reserved
for (int addr = 0x08; addr < 0x78; ++addr) {
mp_hal_i2c_start(self);
int ack = mp_hal_i2c_write_byte(self, (addr << 1) | 1);
int ack = mp_hal_i2c_write_byte(self, (addr << 1));
if (ack) {
mp_obj_list_append(list, MP_OBJ_NEW_SMALL_INT(addr));
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment