mbed libraries for KL25Z
Diff: serial_api.h
- 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