Christian Weiß / Mbed 2 deprecated Diplomarbeit_MW_CW

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers serial_api.h Source File

serial_api.h

00001 /* mbed Microcontroller Library
00002  * Copyright (c) 2006-2013 ARM Limited
00003  *
00004  * Permission is hereby granted, free of charge, to any person obtaining a copy
00005  * of this software and associated documentation files (the "Software"), to deal
00006  * in the Software without restriction, including without limitation the rights
00007  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
00008  * copies of the Software, and to permit persons to whom the Software is
00009  * furnished to do so, subject to the following conditions:
00010  *
00011  * The above copyright notice and this permission notice shall be included in
00012  * all copies or substantial portions of the Software.
00013  *
00014  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
00015  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
00016  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
00017  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
00018  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
00019  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
00020  * SOFTWARE.
00021  */
00022 #ifndef MBED_SERIAL_API_H
00023 #define MBED_SERIAL_API_H
00024 
00025 #include "device.h"
00026 
00027 #if DEVICE_SERIAL
00028 
00029 #ifdef __cplusplus
00030 extern "C" {
00031 #endif
00032 
00033 typedef enum {
00034     ParityNone = 0,
00035     ParityOdd = 1,
00036     ParityEven = 2,
00037     ParityForced1 = 3,
00038     ParityForced0 = 4
00039 } SerialParity;
00040 
00041 typedef enum {
00042     RxIrq,
00043     TxIrq
00044 } SerialIrq;
00045 
00046 typedef void (*uart_irq_handler)(uint32_t id, SerialIrq event);
00047 
00048 typedef struct serial_s serial_t;
00049 
00050 void serial_init       (serial_t *obj, PinName tx, PinName rx);
00051 void serial_free       (serial_t *obj);
00052 void serial_baud       (serial_t *obj, int baudrate);
00053 void serial_format     (serial_t *obj, int data_bits, SerialParity parity, int stop_bits);
00054 
00055 void serial_irq_handler(serial_t *obj, uart_irq_handler handler, uint32_t id);
00056 void serial_irq_set    (serial_t *obj, SerialIrq irq, uint32_t enable);
00057 
00058 int  serial_getc       (serial_t *obj);
00059 void serial_putc       (serial_t *obj, int c);
00060 int  serial_readable   (serial_t *obj);
00061 int  serial_writable   (serial_t *obj);
00062 void serial_clear      (serial_t *obj);
00063 
00064 void serial_pinout_tx(PinName tx);
00065 
00066 #ifdef __cplusplus
00067 }
00068 #endif
00069 
00070 #endif
00071 
00072 #endif
00073