Просмотр исходного кода

Merge pull request #25 from qgyhd1234/i2cscan

[i2c] fix i2c.scan bug.
朱天龙 (Armink) 7 лет назад
Родитель
Сommit
4790146e49
1 измененных файлов с 10 добавлено и 0 удалено
  1. 10 0
      port/machine_hw_i2c.c

+ 10 - 0
port/machine_hw_i2c.c

@@ -59,7 +59,17 @@ int machine_hard_i2c_readfrom(mp_obj_base_t *self_in, uint16_t addr, uint8_t *de
 }
 
 int machine_hard_i2c_writeto(mp_obj_base_t *self_in, uint16_t addr, const uint8_t *src, size_t len, bool stop) {
+    uint8_t buf[1] = {0};
     machine_hard_i2c_obj_t *self = MP_OBJ_TO_PTR(self_in);
+    if (len == 0){
+        len = 1;
+        if (src == NULL){
+            src = buf;
+        }
+        return !rt_i2c_master_send(self->i2c_bus, addr, 0, src, len);
+    } else if (src == NULL){
+        nlr_raise(mp_obj_new_exception_msg_varg(&mp_type_ValueError, "buf must not NULL"));
+    }
     return rt_i2c_master_send(self->i2c_bus, addr, 0, src, len);
 }