mbed libraries for KL25Z

Dependents:   FRDM_RGBLED

Revision:
7:73c5efe92a6c
Child:
8:c14af7958ef5
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/serial_api.h	Tue Oct 23 09:20:18 2012 +0000
@@ -0,0 +1,68 @@
+/* mbed Microcontroller Library - serial_api
+ * Copyright (c) 2009-2011 ARM Limited. All rights reserved.
+ */
+#ifndef MBED_SERIAL_API_H
+#define MBED_SERIAL_API_H
+
+#include "device.h"
+
+#if DEVICE_SERIAL
+
+#include "PinNames.h"
+#include "PeripheralNames.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum {
+    ParityNone = 0,
+    ParityOdd = 1,
+    ParityEven = 2,
+    ParityForced1 = 3,
+    ParityForced0 = 4
+} SerialParity;
+
+typedef enum {
+    TxIrq,
+    RxIrq
+} SerialIrq;
+
+typedef void (*uart_irq_handler)(uint32_t id, SerialIrq event);
+
+typedef struct {
+#if defined(TARGET_LPC1768) || defined(TARGET_LPC2368)
+    LPC_UART_TypeDef *uart;
+
+#elif defined(TARGET_LPC11U24)
+    LPC_USART_Type *uart;
+
+#elif defined(TARGET_KL25Z)
+    UARTLP_Type *uart;
+#endif
+    int index;
+} serial_object;
+
+void serial_init       (serial_object *obj, PinName tx, PinName rx);
+void serial_free       (serial_object *obj);
+void serial_baud       (serial_object *obj, int baudrate);
+void serial_format     (serial_object *obj, int data_bits, SerialParity parity, int stop_bits);
+
+void serial_irq_handler(serial_object *obj, uart_irq_handler handler, uint32_t id);
+void serial_irq_set    (serial_object *obj, SerialIrq irq, uint32_t enable);
+
+int  serial_getc       (serial_object *obj);
+void serial_putc       (serial_object *obj, int c);
+int  serial_readable   (serial_object *obj);
+int  serial_writable   (serial_object *obj);
+void serial_clear      (serial_object *obj);
+
+void serial_pinout_tx(PinName tx);
+
+#ifdef __cplusplus
+}
+#endif 
+
+#endif
+
+#endif