diff --git a/extras/ds3231/ds3231.c b/extras/ds3231/ds3231.c index 84e340d..f3f74f0 100644 --- a/extras/ds3231/ds3231.c +++ b/extras/ds3231/ds3231.c @@ -216,7 +216,7 @@ bool ds3231_getRawTemp(int16_t *temp) uint8_t data[2]; data[0] = DS3231_ADDR_TEMP; - if (!ds3231_send(DS3231_ADDR_TEMP,data, 2)) + if (!ds3231_recv(DS3231_ADDR_TEMP,data, 2)) { *temp = (int16_t)(int8_t)data[0] << 2 | data[1] >> 6; return true; diff --git a/extras/i2c/i2c.c b/extras/i2c/i2c.c index c240e0b..1a37843 100644 --- a/extras/i2c/i2c.c +++ b/extras/i2c/i2c.c @@ -308,7 +308,7 @@ int i2c_slave_read(uint8_t slave_addr, uint8_t *data, uint8_t *buf, uint32_t len buf++; len--; } - if (i2c_stop()) + if (!i2c_stop()) goto error; flag = false ; // Bus free return 0; diff --git a/extras/ssd1306/ssd1306.c b/extras/ssd1306/ssd1306.c index cb3e0f6..de7ce58 100644 --- a/extras/ssd1306/ssd1306.c +++ b/extras/ssd1306/ssd1306.c @@ -256,6 +256,7 @@ int ssd1306_load_frame_buffer(const ssd1306_t *dev, uint8_t buf[]) { if(dev->screen == SH1106_SCREEN && i%dev->width == 0) sh1106_go_coordinate(dev,0,i/dev->width); i2c_send(dev, 0x40, buf ? &buf[i] : tab, 16); + i+=15 ; } break; #endif