Modified BufferedSerial - callback when data received - baudrate as ctor param

Dependencies:   Buffer

Fork of BufferedSerial by Alexandre Bouillot

Embed: (wiki syntax)

« Back to documentation index

BufferedSerial Class Reference

BufferedSerial Class Reference

A serial port (UART) for communication with other serial devices. More...

#include <BufferedSerial.h>

Public Member Functions

 BufferedSerial (PinName tx, PinName rx, int baud=MBED_CONF_PLATFORM_DEFAULT_SERIAL_BAUD_RATE, uint32_t buf_size=256, uint32_t tx_multiple=4, const char *name=NULL)
 Create a BufferedSerial port, connected to the specified transmit and receive pins.
virtual ~BufferedSerial (void)
 Destroy a BufferedSerial port.
virtual int readable (void)
 Check on how many bytes are in the rx buffer.
virtual int writeable (void)
 Check to see if the tx buffer has room.
virtual int getc (void)
 Get a single byte from the BufferedSerial Port.
virtual int putc (int c)
 Write a single byte to the BufferedSerial Port.
virtual int puts (const char *s)
 Write a string to the BufferedSerial Port.
virtual ssize_t write (const void *s, std::size_t length)
 Write a formatted string to the BufferedSerial Port.
void attach (Callback< void()> func)
 Attach a function to call whenever a serial rx interrupt is generated.

Detailed Description

A serial port (UART) for communication with other serial devices.

Can be used for Full Duplex communication, or Simplex by specifying one pin as NC (Not Connected)

Example:

  #include "mbed.h"
  #include "BufferedSerial.h"

  BufferedSerial pc(USBTX, USBRX);

  int main()
  {
      while(1)
      {
          Timer s;

          s.start();
          pc.printf("Hello World - buffered\n");
          int buffered_time = s.read_us();
          wait(0.1f); // give time for the buffer to empty

          s.reset();
          printf("Hello World - blocking\n");
          int polled_time = s.read_us();
          s.stop();
          wait(0.1f); // give time for the buffer to empty

          pc.printf("printf buffered took %d us\n", buffered_time);
          pc.printf("printf blocking took %d us\n", polled_time);
          wait(0.5f);
      }
  }

Software buffers and interrupt driven tx and rx for Serial

Definition at line 71 of file BufferedSerial.h.


Constructor & Destructor Documentation

BufferedSerial ( PinName  tx,
PinName  rx,
int  baud = MBED_CONF_PLATFORM_DEFAULT_SERIAL_BAUD_RATE,
uint32_t  buf_size = 256,
uint32_t  tx_multiple = 4,
const char *  name = NULL 
)

Create a BufferedSerial port, connected to the specified transmit and receive pins.

Parameters:
txTransmit pin
rxReceive pin
buf_sizeprintf() buffer size
tx_multipleamount of max printf() present in the internal ring buffer at one time
nameoptional name
Note:
Either tx or rx may be specified as NC if unused

Definition at line 26 of file BufferedSerial.cpp.

~BufferedSerial ( void   ) [virtual]

Destroy a BufferedSerial port.

Definition at line 35 of file BufferedSerial.cpp.


Member Function Documentation

void attach ( Callback< void()>  func )

Attach a function to call whenever a serial rx interrupt is generated.

Parameters:
funcA pointer to a void function, or 0 to set as none

Definition at line 120 of file BufferedSerial.cpp.

int getc ( void   ) [virtual]

Get a single byte from the BufferedSerial Port.

Should check readable() before calling this.

Returns:
A byte that came in on the Serial Port

Definition at line 53 of file BufferedSerial.cpp.

int putc ( int  c ) [virtual]

Write a single byte to the BufferedSerial Port.

Parameters:
cThe byte to write to the Serial Port
Returns:
The byte that was written to the Serial Port Buffer

Definition at line 58 of file BufferedSerial.cpp.

int puts ( const char *  s ) [virtual]

Write a string to the BufferedSerial Port.

Must be NULL terminated

Parameters:
sThe string to write to the Serial Port
Returns:
The number of bytes written to the Serial Port Buffer

Definition at line 66 of file BufferedSerial.cpp.

int readable ( void   ) [virtual]

Check on how many bytes are in the rx buffer.

Returns:
1 if something exists, 0 otherwise

Definition at line 43 of file BufferedSerial.cpp.

virtual ssize_t write ( const void *  s,
std::size_t  length 
) [virtual]

Write a formatted string to the BufferedSerial Port.

Parameters:
formatThe string + format specifiers to write to the Serial Port
Returns:
The number of bytes written to the Serial Port Buffer Write data to the Buffered Serial Port
Parameters:
sA pointer to data to send
lengthThe amount of data being pointed to
Returns:
The number of bytes written to the Serial Port Buffer
int writeable ( void   ) [virtual]

Check to see if the tx buffer has room.

Returns:
1 always has room and can overwrite previous content if too small / slow

Definition at line 48 of file BufferedSerial.cpp.