| /* |
| * Copyright (c) 2020 Raspberry Pi (Trading) Ltd. |
| * |
| * SPDX-License-Identifier: BSD-3-Clause |
| */ |
| |
| #ifndef _PICO_STDIO_USB_H |
| #define _PICO_STDIO_USB_H |
| |
| #include "pico/stdio.h" |
| |
| /** \brief Support for stdin/stdout over USB serial (CDC) |
| * \defgroup pico_stdio_usb pico_stdio_usb |
| * \ingroup pico_stdio |
| * |
| * Linking this library or calling `pico_enable_stdio_usb(TARGET)` in the CMake (which |
| * achieves the same thing) will add USB CDC to the drivers used for standard output |
| * |
| * Note this library is a developer convenience. It is not applicable in all cases; for one it takes full control of the USB device precluding your |
| * use of the USB in device or host mode. For this reason, this library will automatically disengage if you try to using it alongside \ref tinyusb_device or |
| * \ref tinyusb_host. It also takes control of a lower level IRQ and sets up a periodic background task. |
| */ |
| |
| // PICO_CONFIG: PICO_STDIO_USB_DEFAULT_CRLF, Default state of CR/LF translation for USB output, type=bool, default=PICO_STDIO_DEFAULT_CRLF, group=pico_stdio_usb |
| #ifndef PICO_STDIO_USB_DEFAULT_CRLF |
| #define PICO_STDIO_USB_DEFAULT_CRLF PICO_STDIO_DEFAULT_CRLF |
| #endif |
| |
| // PICO_CONFIG: PICO_STDIO_USB_STDOUT_TIMEOUT_US, Number of microseconds to be blocked trying to write USB output before assuming the host has disappeared and discarding data, default=500000, group=pico_stdio_usb |
| #ifndef PICO_STDIO_USB_STDOUT_TIMEOUT_US |
| #define PICO_STDIO_USB_STDOUT_TIMEOUT_US 500000 |
| #endif |
| |
| // todo perhaps unnecessarily high? |
| // PICO_CONFIG: PICO_STDIO_USB_TASK_INTERVAL_US, Period of microseconds between calling tud_task in the background, default=1000, advanced=true, group=pico_stdio_usb |
| #ifndef PICO_STDIO_USB_TASK_INTERVAL_US |
| #define PICO_STDIO_USB_TASK_INTERVAL_US 1000 |
| #endif |
| |
| // PICO_CONFIG: PICO_STDIO_USB_LOW_PRIORITY_IRQ, low priority (non hardware) IRQ number to claim for tud_task() background execution, default=31, advanced=true, group=pico_stdio_usb |
| #ifndef PICO_STDIO_USB_LOW_PRIORITY_IRQ |
| #define PICO_STDIO_USB_LOW_PRIORITY_IRQ 31 |
| #endif |
| |
| extern stdio_driver_t stdio_usb; |
| |
| /*! \brief Explicitly initialize USB stdio and add it to the current set of stdin drivers |
| * \ingroup pico_stdio_uart |
| */ |
| bool stdio_usb_init(); |
| |
| #endif |