1#include "stm32_usb.hpp"
3#ifdef HAL_PCD_MODULE_ENABLED
9int8_t libxr_stm32_virtual_uart_init(
void)
17int8_t libxr_stm32_virtual_uart_deinit(
void) {
return (
USBD_OK); }
32 uart->read_port_.ProcessPendingReads();
47 if (
uart->write_port_.queue_info_->Pop(
info) != ErrorCode::OK)
52 uart->write_port_.write_size_ = *
Len;
55 if (
uart->write_port_.queue_info_->Peek(
info) != ErrorCode::OK)
60 if (
uart->write_port_.queue_data_->PopBatch(
uart->tx_buffer_,
info.size) !=
69 uart->writing_ =
true;
75 info.op.MarkAsRunning();
83 if (STM32VirtualUART::map[0] ==
nullptr)
89 STM32VirtualUART::map[0]->usb_handle_->pClassData);
98 STM32VirtualUART::map[0]->writing_ =
false;
99 libxr_stm32_virtual_uart_transmit(STM32VirtualUART::map[0]->tx_buffer_,
100 &STM32VirtualUART::map[0]->write_size_, 0);
ErrorCode PushBatch(const void *data, size_t size)
批量推入多个元素 (Push multiple elements into the queue).
void UpdateStatus(bool in_isr, Args &&...args)
Updates operation status based on type.
ReadPort read_port_
读取端口 / Read port
LibXR Color Control Library / LibXR终端颜色控制库
constexpr auto min(T1 a, T2 b) -> typename std::common_type< T1, T2 >::type
计算两个数的最小值