mbed libraries for KL25Z
serial_api.h@8:c14af7958ef5, 2012-11-09 (annotated)
- 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?
User | Revision | Line number | New 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 |