Add code for talking to the Teensy's SPI peripheral

Change-Id: I3ddaa616e3f84fa74a2e7ab68726d5cb5cdbc9de
diff --git a/motors/peripheral/uart_buffer.h b/motors/peripheral/uart_buffer.h
index 879ab5c..19015bb 100644
--- a/motors/peripheral/uart_buffer.h
+++ b/motors/peripheral/uart_buffer.h
@@ -15,7 +15,7 @@
   // Returns the number of characters added.
   __attribute__((warn_unused_result)) int PushSpan(gsl::span<const char> data);
 
-  // max is the maximum size the returned spans should be.
+  // max is the maximum size the returned span should be.
   // The data in the result is only valid until another method is called.
   // Note that this may not return all available data when doing so would
   // require wrapping around, but it will always return a non-empty span if any
@@ -25,6 +25,8 @@
   bool empty() const { return size_ == 0; }
   bool full() const { return size_ == kSize; }
 
+  void clear() { size_ = 0; }
+
   // This may only be called when !empty().
   char PopSingle();
   // This may only be called when !full().