This fork captures the mbed lib v125 for ease of integration into older projects.

Fork of mbed-dev by mbed official

Committer:
apluscw
Date:
Fri Jul 20 21:24:42 2018 +0000
Revision:
187:92cbb9eec47b
Mbed library with source code from mbed lib v125. Posted to ease integration with some older projects.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
apluscw 187:92cbb9eec47b 1 /* mbed Microcontroller Library
apluscw 187:92cbb9eec47b 2 * Copyright (c) 2006-2013 ARM Limited
apluscw 187:92cbb9eec47b 3 *
apluscw 187:92cbb9eec47b 4 * Licensed under the Apache License, Version 2.0 (the "License");
apluscw 187:92cbb9eec47b 5 * you may not use this file except in compliance with the License.
apluscw 187:92cbb9eec47b 6 * You may obtain a copy of the License at
apluscw 187:92cbb9eec47b 7 *
apluscw 187:92cbb9eec47b 8 * http://www.apache.org/licenses/LICENSE-2.0
apluscw 187:92cbb9eec47b 9 *
apluscw 187:92cbb9eec47b 10 * Unless required by applicable law or agreed to in writing, software
apluscw 187:92cbb9eec47b 11 * distributed under the License is distributed on an "AS IS" BASIS,
apluscw 187:92cbb9eec47b 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
apluscw 187:92cbb9eec47b 13 * See the License for the specific language governing permissions and
apluscw 187:92cbb9eec47b 14 * limitations under the License.
apluscw 187:92cbb9eec47b 15 */
apluscw 187:92cbb9eec47b 16 #ifndef MBED_SERIAL_H
apluscw 187:92cbb9eec47b 17 #define MBED_SERIAL_H
apluscw 187:92cbb9eec47b 18
apluscw 187:92cbb9eec47b 19 #include "platform.h"
apluscw 187:92cbb9eec47b 20
apluscw 187:92cbb9eec47b 21 #if DEVICE_SERIAL
apluscw 187:92cbb9eec47b 22
apluscw 187:92cbb9eec47b 23 #include "Stream.h"
apluscw 187:92cbb9eec47b 24 #include "SerialBase.h"
apluscw 187:92cbb9eec47b 25 #include "PlatformMutex.h"
apluscw 187:92cbb9eec47b 26 #include "serial_api.h"
apluscw 187:92cbb9eec47b 27
apluscw 187:92cbb9eec47b 28 namespace mbed {
apluscw 187:92cbb9eec47b 29
apluscw 187:92cbb9eec47b 30 /** A serial port (UART) for communication with other serial devices
apluscw 187:92cbb9eec47b 31 *
apluscw 187:92cbb9eec47b 32 * Can be used for Full Duplex communication, or Simplex by specifying
apluscw 187:92cbb9eec47b 33 * one pin as NC (Not Connected)
apluscw 187:92cbb9eec47b 34 *
apluscw 187:92cbb9eec47b 35 * @Note Synchronization level: Thread safe
apluscw 187:92cbb9eec47b 36 *
apluscw 187:92cbb9eec47b 37 * Example:
apluscw 187:92cbb9eec47b 38 * @code
apluscw 187:92cbb9eec47b 39 * // Print "Hello World" to the PC
apluscw 187:92cbb9eec47b 40 *
apluscw 187:92cbb9eec47b 41 * #include "mbed.h"
apluscw 187:92cbb9eec47b 42 *
apluscw 187:92cbb9eec47b 43 * Serial pc(USBTX, USBRX);
apluscw 187:92cbb9eec47b 44 *
apluscw 187:92cbb9eec47b 45 * int main() {
apluscw 187:92cbb9eec47b 46 * pc.printf("Hello World\n");
apluscw 187:92cbb9eec47b 47 * }
apluscw 187:92cbb9eec47b 48 * @endcode
apluscw 187:92cbb9eec47b 49 */
apluscw 187:92cbb9eec47b 50 class Serial : public SerialBase, public Stream {
apluscw 187:92cbb9eec47b 51
apluscw 187:92cbb9eec47b 52 public:
apluscw 187:92cbb9eec47b 53 #if DEVICE_SERIAL_ASYNCH
apluscw 187:92cbb9eec47b 54 using SerialBase::read;
apluscw 187:92cbb9eec47b 55 using SerialBase::write;
apluscw 187:92cbb9eec47b 56 #endif
apluscw 187:92cbb9eec47b 57
apluscw 187:92cbb9eec47b 58 /** Create a Serial port, connected to the specified transmit and receive pins
apluscw 187:92cbb9eec47b 59 *
apluscw 187:92cbb9eec47b 60 * @param tx Transmit pin
apluscw 187:92cbb9eec47b 61 * @param rx Receive pin
apluscw 187:92cbb9eec47b 62 *
apluscw 187:92cbb9eec47b 63 * @note
apluscw 187:92cbb9eec47b 64 * Either tx or rx may be specified as NC if unused
apluscw 187:92cbb9eec47b 65 */
apluscw 187:92cbb9eec47b 66 Serial(PinName tx, PinName rx, const char *name=NULL);
apluscw 187:92cbb9eec47b 67
apluscw 187:92cbb9eec47b 68 protected:
apluscw 187:92cbb9eec47b 69 virtual int _getc();
apluscw 187:92cbb9eec47b 70 virtual int _putc(int c);
apluscw 187:92cbb9eec47b 71 virtual void lock();
apluscw 187:92cbb9eec47b 72 virtual void unlock();
apluscw 187:92cbb9eec47b 73
apluscw 187:92cbb9eec47b 74 PlatformMutex _mutex;
apluscw 187:92cbb9eec47b 75 };
apluscw 187:92cbb9eec47b 76
apluscw 187:92cbb9eec47b 77 } // namespace mbed
apluscw 187:92cbb9eec47b 78
apluscw 187:92cbb9eec47b 79 #endif
apluscw 187:92cbb9eec47b 80
apluscw 187:92cbb9eec47b 81 #endif