source:Interfaces/Serial/Serial_Interfaces.png

Serial

Serial is a generic protocol used by computers and electronic modules to send and receive control information and data. The Serial link has two unidirection channels, one for sending and one for receiving. The link is asynchronous, and so both ends of the serial link must be configured to use the same settings.

Hello World!

// Print to the PC, then pass back characters (slightly modified!)

#include "mbed.h"

Serial pc(USBTX, USBRX); // tx, rx

int main() {
    pc.printf("Hello World!");
    while(1) {
        pc.putc(pc.getc() + 1);
    }
}

API

SerialA serial port (UART) for communication with other serial devices
Functions
SerialCreate a Serial port, connected to the specified transmit and receive pins
baudSet the baud rate of the serial port
formatSet the transmission format used by the Serial port
putcWrite a character
getcRead a character
printfWrite a formated string
scanfRead a formated string
readableDetermine if there is a character available to read
writeableDetermine if there is space available to write a character
attachAttach a function to call whenever a serial interrupt is generated
attachAttach a member function to call whenever a serial interrupt is generated
class Serial : public Stream
A serial port (UART) for communication with other serial devices
Serial(PinName tx,  
PinName rx,  
const char *name =  NULL)
Create a Serial port, connected to the specified transmit and receive pins
void baud(int baudrate)
Set the baud rate of the serial port
void format(int bits =  8,
Parity parity =  Serial::None,
int stop_bits =  1)
Set the transmission format used by the Serial port
int putc(int c)
Write a character
int getc()
Read a character
int printf(const char *format,
 ...)
Write a formated string
int scanf(const char *format,
 ...)
Read a formated string
int readable()
Determine if there is a character available to read
int writeable()
Determine if there is space available to write a character
void attach(void (*fptr)(void))
Attach a function to call whenever a serial interrupt is generated

Details

The Serial Interface can be used on mbed pins p9/p10, p13/p14, p28/p27 and USBTX/USBRX

Note that USBTX/USBRX are not DIP pins, they represent the pins that route to the interface USB Serial port.

Serial channels have a number of configurable parameters:

The default settings for the mbed microcontroller are described as 9600 8N1, and this is common notation for Serial port settings.

See Also

Reference

Examples

// Write a message to a device at a 19200 baud 

#include "mbed.h"

Serial device(p9, p10);  // tx, rx

int main() {
    device.baud(19200);
    device.printf("Hello World\n");
}
// Provide a serial pass-through between the PC and an external UART

#include "mbed.h"

Serial pc(USBTX, USBRX); // tx, rx
Serial device(p9, p10);  // tx, rx

int main() {
    while(1) {
        if(pc.readable()) {
            device.putc(pc.getc());
        }
        if(device.readable()) {
            pc.putc(device.getc());
        }
    }
}