5#if defined(HAL_PCD_MODULE_ENABLED) && defined(LIBXR_SYSTEM_ThreadX)
7#include "app_usbx_device.h"
8#include "libxr_def.hpp"
11#include "semaphore.hpp"
15#include "ux_device_class_cdc_acm.h"
16#include "ux_device_stack.h"
21class STM32VirtualUART :
public UART
24 STM32VirtualUART(PCD_HandleTypeDef *hpcd, ULONG tx_stack_size, UINT tx_priority,
25 ULONG rx_stack_size, UINT rx_priority, uint32_t tx_queue_size = 5,
26 size_t buffer_size = 512);
30 ErrorCode
SetConfig(UART::Configuration config)
override;
32 static ErrorCode
ReadFun(ReadPort &port);
33 static ErrorCode
WriteFun(WritePort &port);
35 static STM32VirtualUART *instance_;
37 UX_SLAVE_CLASS_CDC_ACM *cdc_acm_ =
nullptr;
43 static void RxThreadEntry(ULONG arg);
44 static void TxThreadEntry(ULONG arg);
48 void *tx_stack_mem_ =
nullptr;
49 void *rx_stack_mem_ =
nullptr;
63 WritePort _write_port;
ErrorCode SetConfig(UART::Configuration config)
设置 UART 配置 / Sets the UART configuration
ErrorCode(* ReadFun)(ReadPort &port)
Function pointer type for read operations.
ErrorCode(* WriteFun)(WritePort &port)
Function pointer type for write operations.