SAKURA Internet IoT Alpha Communication Module Library for mbed

Dependents:   SakuraAlpha_SPI SakuraAlpha_I2C

Files at this revision

API Documentation at this revision

Comitter:
sakurafan
Date:
Fri Jun 03 09:15:25 2016 +0000
Parent:
0:38f4d6047886
Commit message:
bug fix: i2c receive

Changed in this revision

SakuraAlpha.cpp Show annotated file Show diff for this revision Revisions of this file
SakuraAlpha.h Show annotated file Show diff for this revision Revisions of this file
--- a/SakuraAlpha.cpp	Tue May 31 13:36:07 2016 +0000
+++ b/SakuraAlpha.cpp	Fri Jun 03 09:15:25 2016 +0000
@@ -272,13 +272,20 @@
 }
 
 void SakuraAlphaI2C::startReceiving(uint16_t num_recieve){
+    _num_recieve = num_recieve;
     _i2c.start();
     _i2c.write(SAKURACC_SLAVE_ADDR | 1);
 }
 uint8_t SakuraAlphaI2C::receiveByte(){
-    return _i2c.read(1);
+    if (_num_recieve <= 0) return 0;
+    _num_recieve --;
+    return _i2c.read(_num_recieve > 0 ? 1 : 0);
 }
 void SakuraAlphaI2C::finishReceiving(){
+    while (_num_recieve > 0) {
+        _num_recieve --;
+        _i2c.read(_num_recieve > 0 ? 1 : 0);
+    }
     _i2c.stop();
 }
 
--- a/SakuraAlpha.h	Tue May 31 13:36:07 2016 +0000
+++ b/SakuraAlpha.h	Fri Jun 03 09:15:25 2016 +0000
@@ -95,6 +95,7 @@
 
 protected:
     I2C _i2c;
+    int _num_recieve;
 
     virtual void begin();
     virtual void end();