Fork of X_NUCLEO_COMMON lib adding 16-bit SPI support

Fork of X_NUCLEO_COMMON by ST

Revision:
11:5d30d6eefa49
Parent:
10:da29b5403ca1
Child:
13:9ea386e57527
--- a/DevSPI/DevSPI.h	Fri Oct 16 14:13:27 2015 +0200
+++ b/DevSPI/DevSPI.h	Wed Feb 10 11:00:49 2016 +0000
@@ -58,9 +58,8 @@
      */
     DevSPI(PinName mosi, PinName miso, PinName sclk) : SPI(mosi, miso, sclk)
     {
-        bits = 9;
-        mode = 0;
-        frequency_hz = 1E6;
+        format(9,0);
+        frequency(1E6);
         setup_done = false;
     }
 
@@ -180,8 +179,14 @@
         ssel = 0;
         
         /* Read and write data at the same time. */
-        for (int i = 0; i < NumBytes; i++)
-            pBufferToRead[i] = write(pBufferToWrite[i]);
+        if(_bits == 16) {
+            for (int i = 0; i < NumBytes; i+=2){
+                ((uint16_t*)pBufferToRead)[i] = write(((uint16_t*)pBufferToWrite)[i]);
+            }
+        } else if(_bits == 8) {
+            for (int i = 0; i < NumBytes; i++)
+                pBufferToRead[i] = write(pBufferToWrite[i]);
+        }
 
         /* Unselect the chip. */
         ssel = 1;
@@ -191,9 +196,6 @@
 
  protected:
     bool setup_done;
-    int bits;
-    int mode;
-    int frequency_hz;
 };
 
 #endif /* __DEV_SPI_H */