USBSerial
 USBSerial class hierarchy
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_t * | endpoint_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);
    }
}