]> git.donarmstrong.com Git - qmk_firmware.git/blob - tool/mbed/mbed-sdk/libraries/mbed/api/RawSerial.h
Squashed 'tmk_core/' changes from 7967731..b9e0ea0
[qmk_firmware.git] / tool / mbed / mbed-sdk / libraries / mbed / api / RawSerial.h
1 /* mbed Microcontroller Library
2  * Copyright (c) 2006-2013 ARM Limited
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 #ifndef MBED_RAW_SERIAL_H
17 #define MBED_RAW_SERIAL_H
18
19 #include "platform.h"
20
21 #if DEVICE_SERIAL
22
23 #include "SerialBase.h"
24 #include "serial_api.h"
25
26 namespace mbed {
27
28 /** A serial port (UART) for communication with other serial devices
29  * This is a variation of the Serial class that doesn't use streams,
30  * thus making it safe to use in interrupt handlers with the RTOS.
31  *
32  * Can be used for Full Duplex communication, or Simplex by specifying
33  * one pin as NC (Not Connected)
34  *
35  * Example:
36  * @code
37  * // Send a char to the PC
38  *
39  * #include "mbed.h"
40  *
41  * RawSerial pc(USBTX, USBRX);
42  *
43  * int main() {
44  *     pc.putc('A');
45  * }
46  * @endcode
47  */
48 class RawSerial: public SerialBase {
49
50 public:
51     /** Create a RawSerial port, connected to the specified transmit and receive pins
52      *
53      *  @param tx Transmit pin
54      *  @param rx Receive pin
55      *
56      *  @note
57      *    Either tx or rx may be specified as NC if unused
58      */
59     RawSerial(PinName tx, PinName rx);
60
61     /** Write a char to the serial port
62      *
63      * @param c The char to write
64      *
65      * @returns The written char or -1 if an error occured
66      */
67     int putc(int c);
68
69     /** Read a char from the serial port
70      *
71      * @returns The char read from the serial port
72      */
73     int getc();
74
75     /** Write a string to the serial port
76      *
77      * @param str The string to write
78      *
79      * @returns 0 if the write succeeds, EOF for error
80      */
81     int puts(const char *str);
82
83     int printf(const char *format, ...);
84 };
85
86 } // namespace mbed
87
88 #endif
89
90 #endif