4#include "ch32_usb_endpoint.hpp"
5#include "libxr_def.hpp"
6#include "libxr_type.hpp"
7#include "usb/core/ep_pool.hpp"
8#include "usb/device/dev_core.hpp"
17 ch32_usb_dev_id_t
id,
size_t max_ep_num,
20 const std::initializer_list<const USB::DescriptorStrings::LanguagePack *> LANG_LIST,
21 const std::initializer_list<
22 const std::initializer_list<USB::ConfigDescriptorItem *>>
24 USB::Speed
speed = USB::Speed::FULL, USB::USBSpec spec = USB::USBSpec::USB_2_0)
40class CH32USBDeviceFS :
public USB::EndpointPool,
public USB::DeviceCore
44 const std::initializer_list<LibXR::RawData> EP_CFGS,
45 USB::DeviceDescriptor::PacketSize0 packet_size, uint16_t vid, uint16_t pid,
47 const std::initializer_list<const USB::DescriptorStrings::LanguagePack *> LANG_LIST,
48 const std::initializer_list<
49 const std::initializer_list<USB::ConfigDescriptorItem *>>
52 ErrorCode SetAddress(uint8_t address, USB::DeviceCore::Context context)
override;
54 void Start()
override;
58 static inline CH32USBDeviceFS *self_ =
nullptr;
65class CH32USBDeviceHS :
public USB::EndpointPool,
public USB::DeviceCore
75 EPConfig(RawData buffer)
76 : buffer_tx(buffer), buffer_rx(buffer), double_buffer(false), is_in(false)
80 EPConfig(RawData buffer,
bool is_in)
81 : buffer_tx(buffer), buffer_rx(buffer), double_buffer(true), is_in(is_in)
85 EPConfig(RawData buffer_tx, RawData buffer_rx)
86 : buffer_tx(buffer_tx), buffer_rx(buffer_rx), double_buffer(false), is_in(false)
92 const std::initializer_list<EPConfig> EP_CFGS, uint16_t vid, uint16_t pid,
94 const std::initializer_list<const USB::DescriptorStrings::LanguagePack *> LANG_LIST,
95 const std::initializer_list<
96 const std::initializer_list<USB::ConfigDescriptorItem *>>
99 ErrorCode SetAddress(uint8_t address, USB::DeviceCore::Context context)
override;
101 void Start()
override;
103 void Stop()
override;
105 static inline CH32USBDeviceHS *self_ =
nullptr;
void Init() override
初始化 USB 设备 / Initialize USB device
void Deinit() override
反初始化 USB 设备 / Deinitialize USB device
USB 设备协议栈核心类,负责端点 0 控制传输及配置、描述符、标准请求处理等。 USB device protocol stack core class. Handles EP0 control tr...
virtual void Deinit()
反初始化 USB 设备 / Deinitialize USB device
Speed speed
当前速度 / Current speed
virtual void Init()
初始化 USB 设备 / Initialize USB device
PacketSize0
控制端点0最大包长度枚举 Packet size for endpoint 0 (bMaxPacketSize0)
USB端点池类 / USB endpoint pool class.