Mistake on this page?
Report an issue in GitHub or email us

USBSerial

USBSerial class hierarchy

You can use the USBSerial interface to emulate a serial port over USB. You can use this serial port as an extra serial port or as a debug solution.

USBSerial class reference

Public Member Functions
 USBSerial (bool connect_blocking=true, uint16_t vendor_id=0x1f00, uint16_t product_id=0x2012, uint16_t product_release=0x0001)
 Basic constructor. More...
 USBSerial (USBPhy *phy, uint16_t vendor_id=0x1f00, uint16_t product_id=0x2012, uint16_t product_release=0x0001)
 Fully featured constructor. More...
virtual ~USBSerial ()
 Destroy this object. More...
virtual int _putc (int c)
 Send a character. More...
virtual int _getc ()
 Read a character: blocking. More...
uint8_t available ()
 Check the number of bytes available. More...
bool connected ()
 Check if the terminal is connected. More...
int readable ()
 Determine if there is a character available to read. More...
int writeable ()
 Determine if there is space available to write a character. More...
template<typename T >
void attach (T *tptr, void(T::*mptr)(void))
 Attach a member function to call when a packet is received. More...
void attach (void(*fptr)(void))
 Attach a callback called when a packet is received. More...
void attach (mbed::Callback< void()> &cb)
 Attach a Callback called when a packet is received. More...
void attach (void(*fptr)(int baud, int bits, int parity, int stop))
 Attach a callback to call when serial's settings are changed. More...
bool ready ()
 Check if this class is ready. More...
void wait_ready ()
 Block until the terminal is connected. More...
void send_nb (uint8_t *buffer, uint32_t size, uint32_t *actual, bool now=true)
 Send what there is room for. More...
void receive_nb (uint8_t *buffer, uint32_t size, uint32_t *actual)
 Read from the receive buffer. More...
void init ()
 Initialize this instance. More...
void deinit ()
 Power down this instance. More...
bool configured ()
 Check if the device is configured. More...
void connect ()
 Connect a device This method can also be used to resume USB operation when USB power is detected after it was suspended via USBDevice::deinit. More...
void disconnect ()
 Disconnect a device. More...
void sof_enable ()
 Enable the start of frame interrupt. More...
void sof_disable ()
 Disable the start of frame interrupt. More...
bool endpoint_add (usb_ep_t endpoint, uint32_t max_packet, usb_ep_type_t type, mbed::Callback< void()> callback=nullptr)
 Add an endpoint. More...
template<typename T >
bool endpoint_add (usb_ep_t endpoint, uint32_t max_packet, usb_ep_type_t type, void(T::*callback)())
 Add an endpoint. More...
void endpoint_remove (usb_ep_t endpoint)
 Remove an endpoint. More...
void endpoint_remove_all ()
 Remove all non-zero endpoints. More...
void endpoint_stall (usb_ep_t endpoint)
 Stall an endpoint. More...
void endpoint_unstall (usb_ep_t endpoint)
 Un-stall an endpoint. More...
uint32_t endpoint_max_packet_size (usb_ep_t endpoint)
 Get the current maximum size for this endpoint. More...
void endpoint_abort (usb_ep_t endpoint)
 Abort the current transfer on this endpoint. More...
bool read_start (usb_ep_t endpoint, uint8_t *buffer, uint32_t size)
 start a read on the given endpoint More...
uint32_t read_finish (usb_ep_t endpoint)
 Get the status of a read. More...
bool write_start (usb_ep_t endpoint, uint8_t *buffer, uint32_t size)
 Write a data to the given endpoint. More...
uint32_t write_finish (usb_ep_t endpoint)
 Get the status of a write. More...
virtual int close ()
 Close a file. More...
virtual ssize_t write (const void *buffer, size_t length)
 Write the contents of a buffer to a file. More...
virtual ssize_t read (void *buffer, size_t length)
 Read the contents of a file into a buffer. More...
virtual off_t seek (off_t offset, int whence)
 Move the file position to a given offset from from a given location. More...
virtual off_t tell ()
 Get the file position of the file. More...
virtual void rewind ()
 Rewind the file position to the beginning of the file. More...
virtual int isatty ()
 Check if the file in an interactive terminal device. More...
virtual int sync ()
 Flush any buffers associated with the file. More...
virtual off_t size ()
 Get the size of the file. More...
virtual int truncate (off_t length)
 Truncate or extend a file. More...
virtual int set_blocking (bool blocking)
 Set blocking or nonblocking mode of the file operation like read/write. More...
virtual bool is_blocking () const
 Check current blocking or nonblocking mode for file operations. More...
virtual int enable_input (bool enabled)
 Enable or disable input. More...
virtual int enable_output (bool enabled)
 Enable or disable output. More...
virtual short poll (short events) const
 Check for poll event flags You can use or ignore the input parameter. More...
bool writable () const
 Definition depends on the subclass implementing FileHandle. More...
bool readable () const
 Definition depends on the subclass implementing FileHandle. More...
virtual void sigio (Callback< void()> func)
 Register a callback on state change of the file. More...
Protected Member Functions
virtual void callback_reset ()
 Called by USBDevice layer on bus reset. More...
virtual void callback_state_change (DeviceState new_state)
 Called when USB changes state. More...
virtual void callback_request (const setup_packet_t *setup)
 Called by USBDevice on Endpoint0 request. More...
virtual void callback_request_xfer_done (const setup_packet_t *setup, bool aborted)
 Called by USBDevice on data stage completion. More...
virtual void callback_power (bool powered)
 Called by USBDevice layer on power state change. More...
virtual void callback_sof (int frame_number)
 Called by USBDevice layer on each new USB frame. More...
void complete_request (RequestResult result, uint8_t *data=NULL, uint32_t size=0)
 Called to complete the setup stage of a callback request. More...
void complete_request_xfer_done (bool success)
 Called to complete the data stage of a callback request. More...
void complete_set_configuration (bool success)
 Called to complete a set configuration command. More...
void complete_set_interface (bool success)
 Called to complete a set interface command. More...
uint8_t * find_descriptor (uint8_t descriptor_type, uint8_t index=0)
 Find a descriptor type inside the configuration descriptor. More...
const usb_ep_table_tendpoint_table ()
 Get the endpoint table of this device. More...
virtual void start_process ()
 Callback called to indicate the USB processing needs to be done. More...
virtual void lock ()
 Acquire exclusive access to this instance USBDevice. More...
virtual void unlock ()
 Release exclusive access to this instance USBDevice. More...
virtual void assert_locked ()
 Assert that the current thread of execution holds the lock. More...
virtual void lock ()
 Acquire exclusive access to this object. More...
virtual void unlock ()
 Release exclusive access to this object. More...

USBSerial example

/*
 * Copyright (c) 2006-2020 Arm Limited and affiliates.
 * SPDX-License-Identifier: Apache-2.0
 */
#include "mbed.h"
#include "USBSerial.h"

//Virtual serial port over USB
USBSerial serial;

int main(void)
{
    while (1) {
        serial.printf("I am a virtual serial port\r\n");
        ThisThread::sleep_for(1000);
    }
}

Important Information for this Arm website

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies. If you are not happy with the use of these cookies, please review our Cookie Policy to learn how they can be disabled. By disabling cookies, some features of the site will not work.