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.
Dependents: mbed_blinky-bmd-200 bmd-200_accel_demo firstRig
Fork of mbed-src by
Diff: targets/hal/TARGET_Freescale/TARGET_KLXX/serial_api.c
- Revision:
- 227:7bd0639b8911
- Parent:
- 158:3121b9889f7b
- Child:
- 339:40bd4701f3e2
--- a/targets/hal/TARGET_Freescale/TARGET_KLXX/serial_api.c Wed Jun 11 09:45:09 2014 +0100
+++ b/targets/hal/TARGET_Freescale/TARGET_KLXX/serial_api.c Wed Jun 11 16:00:09 2014 +0100
@@ -13,6 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+#include "mbed_assert.h"
#include "serial_api.h"
// math.h required for floating point operations for baud rate calculation
@@ -22,7 +23,6 @@
#include "cmsis.h"
#include "pinmap.h"
-#include "error.h"
#include "clk_freqs.h"
#include "PeripheralPins.h"
@@ -61,9 +61,7 @@
UARTName uart_tx = (UARTName)pinmap_peripheral(tx, PinMap_UART_TX);
UARTName uart_rx = (UARTName)pinmap_peripheral(rx, PinMap_UART_RX);
UARTName uart = (UARTName)pinmap_merge(uart_tx, uart_rx);
- if ((int)uart == NC) {
- error("Serial pinout mapping failed");
- }
+ MBED_ASSERT((int)uart != NC);
obj->uart = (UARTLP_Type *)uart;
// enable clk
@@ -150,17 +148,16 @@
}
void serial_format(serial_t *obj, int data_bits, SerialParity parity, int stop_bits) {
-
+ MBED_ASSERT((stop_bits == 1) || (stop_bits == 2));
+ MBED_ASSERT((parity == ParityNone) || (parity == ParityOdd) || (parity == ParityEven));
+ MBED_ASSERT(data_bits == 8); // TODO: Support other number of data bits (also in the write method!)
+
// save C2 state
uint8_t c2_state = (obj->uart->C2 & (UARTLP_C2_RE_MASK | UARTLP_C2_TE_MASK));
// Disable UART before changing registers
obj->uart->C2 &= ~(UARTLP_C2_RE_MASK | UARTLP_C2_TE_MASK);
- // TODO: Support other number of data bits (also in the write method!)
- if ((data_bits < 8) || (data_bits > 8)) {
- error("Invalid number of bits (%d) in serial format, should be 8", data_bits);
- }
uint8_t parity_enable, parity_select;
switch (parity) {
@@ -168,14 +165,9 @@
case ParityOdd : parity_enable = 1; parity_select = 1; data_bits++; break;
case ParityEven: parity_enable = 1; parity_select = 0; data_bits++; break;
default:
- error("Invalid serial parity setting");
- return;
+ break;
}
- // 1 stop bits = 0, 2 stop bits = 1
- if ((stop_bits != 1) && (stop_bits != 2)) {
- error("Invalid stop bits specified");
- }
stop_bits -= 1;
// data bits, parity and parity mode
@@ -290,7 +282,7 @@
}
void serial_break_set(serial_t *obj) {
- obj->uart->C2 |= UARTLP_C2_SBK_MASK;
+ obj->uart->C2 |= UARTLP_C2_SBK_MASK;
}
void serial_break_clear(serial_t *obj) {
