Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: BLE_API mbed-dev-bin nRF51822
Fork of microbit-dal by
Diff: source/drivers/MicroBitSerial.cpp
- Revision:
- 66:2fc7d7c2fffc
- Parent:
- 65:f7ebabf23e15
- Child:
- 67:99cfde195ff3
--- a/source/drivers/MicroBitSerial.cpp Wed Jul 13 12:18:45 2016 +0100
+++ b/source/drivers/MicroBitSerial.cpp Wed Jul 13 12:18:46 2016 +0100
@@ -57,8 +57,9 @@
*/
MicroBitSerial::MicroBitSerial(PinName tx, PinName rx, uint8_t rxBufferSize, uint8_t txBufferSize) : RawSerial(tx,rx), delimeters()
{
- this->rxBuffSize = rxBufferSize;
- this->txBuffSize = txBufferSize;
+ // + 1 so there is a usable buffer size, of the size the user requested.
+ this->rxBuffSize = rxBufferSize + 1;
+ this->txBuffSize = txBufferSize + 1;
this->rxBuff = NULL;
this->txBuff = NULL;
@@ -545,7 +546,7 @@
return result;
}
- char c = (char)getChar(mode);
+ int c = getChar(mode);
unlockRx();
@@ -834,7 +835,6 @@
detach(Serial::RxIrq);
- serial_free(&_serial);
serial_init(&_serial, tx, rx);
attach(this, &MicroBitSerial::dataReceived, Serial::RxIrq);
@@ -853,6 +853,8 @@
/**
* Configures an event to be fired after "len" characters.
*
+ * Will generate an event with the ID: MICROBIT_ID_SERIAL and the value MICROBIT_SERIAL_EVT_HEAD_MATCH.
+ *
* @param len the number of characters to wait before triggering the event.
*
* @param mode the selected mode, one of: ASYNC, SYNC_SPINWAIT, SYNC_SLEEP. Each mode
@@ -885,7 +887,9 @@
/**
* Configures an event to be fired on a match with one of the delimeters.
*
- * @param delimeters the characters to match received characters against e.g. ManagedString("\r\n")
+ * Will generate an event with the ID: MICROBIT_ID_SERIAL and the value MICROBIT_SERIAL_EVT_DELIM_MATCH.
+ *
+ * @param delimeters the characters to match received characters against e.g. ManagedString("\n")
*
* @param mode the selected mode, one of: ASYNC, SYNC_SPINWAIT, SYNC_SLEEP. Each mode
* gives a different behaviour:
@@ -957,7 +961,8 @@
lockRx();
- this->rxBuffSize = size;
+ // + 1 so there is a usable buffer size, of the size the user requested.
+ this->rxBuffSize = size + 1;
int result = initialiseRx();
@@ -981,7 +986,8 @@
lockTx();
- this->txBuffSize = size;
+ // + 1 so there is a usable buffer size, of the size the user requested.
+ this->txBuffSize = size + 1;
int result = initialiseTx();
