mbed libraries for KL25Z

Dependents:   FRDM_RGBLED

Committer:
emilmont
Date:
Fri Nov 09 11:33:53 2012 +0000
Revision:
8:c14af7958ef5
Parent:
7:73c5efe92a6c
Child:
9:663789d7729f
SPI driver; ADC driver; DAC driver; microlib support; general bugfixing

Who changed what in which revision?

UserRevisionLine numberNew contents of line
emilmont 7:73c5efe92a6c 1 /* mbed Microcontroller Library - serial_api
emilmont 7:73c5efe92a6c 2 * Copyright (c) 2009-2011 ARM Limited. All rights reserved.
emilmont 7:73c5efe92a6c 3 */
emilmont 7:73c5efe92a6c 4 #ifndef MBED_SERIAL_API_H
emilmont 7:73c5efe92a6c 5 #define MBED_SERIAL_API_H
emilmont 7:73c5efe92a6c 6
emilmont 7:73c5efe92a6c 7 #include "device.h"
emilmont 7:73c5efe92a6c 8
emilmont 7:73c5efe92a6c 9 #if DEVICE_SERIAL
emilmont 7:73c5efe92a6c 10
emilmont 7:73c5efe92a6c 11 #include "PinNames.h"
emilmont 7:73c5efe92a6c 12 #include "PeripheralNames.h"
emilmont 7:73c5efe92a6c 13
emilmont 7:73c5efe92a6c 14 #ifdef __cplusplus
emilmont 7:73c5efe92a6c 15 extern "C" {
emilmont 7:73c5efe92a6c 16 #endif
emilmont 7:73c5efe92a6c 17
emilmont 7:73c5efe92a6c 18 typedef enum {
emilmont 7:73c5efe92a6c 19 ParityNone = 0,
emilmont 7:73c5efe92a6c 20 ParityOdd = 1,
emilmont 7:73c5efe92a6c 21 ParityEven = 2,
emilmont 7:73c5efe92a6c 22 ParityForced1 = 3,
emilmont 7:73c5efe92a6c 23 ParityForced0 = 4
emilmont 7:73c5efe92a6c 24 } SerialParity;
emilmont 7:73c5efe92a6c 25
emilmont 7:73c5efe92a6c 26 typedef enum {
emilmont 7:73c5efe92a6c 27 TxIrq,
emilmont 7:73c5efe92a6c 28 RxIrq
emilmont 7:73c5efe92a6c 29 } SerialIrq;
emilmont 7:73c5efe92a6c 30
emilmont 7:73c5efe92a6c 31 typedef void (*uart_irq_handler)(uint32_t id, SerialIrq event);
emilmont 7:73c5efe92a6c 32
emilmont 8:c14af7958ef5 33 typedef struct serial_object_s serial_object;
emilmont 7:73c5efe92a6c 34
emilmont 7:73c5efe92a6c 35 void serial_init (serial_object *obj, PinName tx, PinName rx);
emilmont 7:73c5efe92a6c 36 void serial_free (serial_object *obj);
emilmont 7:73c5efe92a6c 37 void serial_baud (serial_object *obj, int baudrate);
emilmont 7:73c5efe92a6c 38 void serial_format (serial_object *obj, int data_bits, SerialParity parity, int stop_bits);
emilmont 7:73c5efe92a6c 39
emilmont 7:73c5efe92a6c 40 void serial_irq_handler(serial_object *obj, uart_irq_handler handler, uint32_t id);
emilmont 7:73c5efe92a6c 41 void serial_irq_set (serial_object *obj, SerialIrq irq, uint32_t enable);
emilmont 7:73c5efe92a6c 42
emilmont 7:73c5efe92a6c 43 int serial_getc (serial_object *obj);
emilmont 7:73c5efe92a6c 44 void serial_putc (serial_object *obj, int c);
emilmont 7:73c5efe92a6c 45 int serial_readable (serial_object *obj);
emilmont 7:73c5efe92a6c 46 int serial_writable (serial_object *obj);
emilmont 7:73c5efe92a6c 47 void serial_clear (serial_object *obj);
emilmont 7:73c5efe92a6c 48
emilmont 7:73c5efe92a6c 49 void serial_pinout_tx(PinName tx);
emilmont 7:73c5efe92a6c 50
emilmont 7:73c5efe92a6c 51 #ifdef __cplusplus
emilmont 7:73c5efe92a6c 52 }
emilmont 7:73c5efe92a6c 53 #endif
emilmont 7:73c5efe92a6c 54
emilmont 7:73c5efe92a6c 55 #endif
emilmont 7:73c5efe92a6c 56
emilmont 7:73c5efe92a6c 57 #endif