Библиотека LUFA (раннее название MyUSB) версия 101122
|
Enumerations | |
enum | USB_DescriptorMemorySpaces_t { MEMSPACE_FLASH = 0, MEMSPACE_EEPROM = 1, MEMSPACE_RAM = 2 } |
enum | USB_Device_States_t { DEVICE_STATE_Unattached = 0, DEVICE_STATE_Powered = 1, DEVICE_STATE_Default = 2, DEVICE_STATE_Addressed = 3, DEVICE_STATE_Configured = 4, DEVICE_STATE_Suspended = 5 } |
Functions | |
void | USB_Device_SendRemoteWakeup (void) |
static uint16_t | USB_Device_GetFrameNumber (void) |
static void | USB_Device_EnableSOFEvents (void) ATTR_ALWAYS_INLINE |
static void | USB_Device_DisableSOFEvents (void) ATTR_ALWAYS_INLINE |
uint16_t | CALLBACK_USB_GetDescriptor (const uint16_t wValue, const uint8_t wIndex, const void **const DescriptorAddress, uint8_t *MemoryAddressSpace) ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3) |
Variables | |
uint8_t | USB_ConfigurationNumber |
bool | USB_RemoteWakeupEnabled |
bool | USB_CurrentlySelfPowered |
volatile uint8_t | USB_DeviceState |
Маски опций режима устройства USB | |
#define | USB_DEVICE_OPT_LOWSPEED (1 << 0) |
#define | USB_DEVICE_OPT_FULLSPEED (0 << 0) |
Макросы и перечисления, связанные с устройством USB. Этот модуль содержит макросы и перечисления, которые используются, когда контроллер USB инициализирован в режиме устройства USB.
#define USB_DEVICE_OPT_FULLSPEED (0 << 0) |
Маска для параметра Options функции USB_Init(). Показывает, что интерфейс USB должен быть инициализирован в режим полной скорости full speed (12 мегабит/сек).
#define USB_DEVICE_OPT_LOWSPEED (1 << 0) |
Маска для параметра Options функции USB_Init(). Показывает, что интерфейс USB должен быть инициализирован в режим низкой скорости low speed (1.5 мегабит/сек).
Перечисление для возможных областей памяти, для MemoryAddressSpace функции CALLBACK_USB_GetDescriptor(). Может использоваться, когда не используются опции времени компиляции USE_*_DESCRIPTORS, чтобы показать, в какой области памяти сохранен дескриптор.
enum USB_Device_States_t |
uint16_t CALLBACK_USB_GetDescriptor | ( | const uint16_t | wValue, |
const uint8_t | wIndex, | ||
const void **const | DescriptorAddress, | ||
uint8_t * | MemoryAddressSpace | ||
) |
Функция получения для указанного дескриптора размера и размещения в памяти по указанному типу дескриптора, индексу и ID языка. Эта функция ДОЛЖНА быть переопределена в приложении пользователя (добавлена с полным, идентичным прототипом и именем, чтобы библиотека могла её вызвать для получения данных дескриптора.
[in] | wValue | Тип дескриптора для получения в старшем байте, и его индекс в младшем байте (когда имеется больше одного дескриптора указанного типа, как в случае строковых дескрипторов). Тип может быть одним из стандартных типов, заданных в перечислении DescriptorTypes_t, или может иметь специфичное для класса дескриптора значение типа. |
[in] | wIndex | ID языка для возврата, если тип wValue указывает на DTYPE_String, иначе ноль для стандартных дескрипторов, или как задано в стандартах, специфичных для класса. |
[out] | DescriptorAddress | Указатель на дескриптор в памяти. Это должно быть установлено в подпрограмме на адрес дескриптора. |
[out] | MemoryAddressSpace | A value from the USB_DescriptorMemorySpaces_t enum to indicate the memory space in which the descriptor is stored. Этот параметр не существует, когда используется одна из опций времени компиляции USE_*_DESCRIPTORS. |
static void USB_Device_DisableSOFEvents | ( | void | ) | [inline, static] |
Запрещает события Start Of Frame режима устройства. Когда запрещено, останавливает запуск события EVENT_USB_Device_StartOfFrame(), когда прошла энумерация в режиме устройства USB.
static void USB_Device_EnableSOFEvents | ( | void | ) | [inline, static] |
Разрешает события Start Of Frame (SOF, начало фрейма) при работе в режиме устройства USB. Когда разрешено, это приводит к запуску события EVENT_USB_Device_StartOfFrame() раз в милисекунду, синхронно с шиной USB, в начале каждого фрейма USB, когда прошла энумерация в режиме устройства USB.
static uint16_t USB_Device_GetFrameNumber | ( | void | ) | [inline, static] |
Возвращает текущий номер фрейма USB в режиме работы устройства USB. Каждую милисекунду при активной шине USB (когда устройство прошло энумерацию хостом) номер фрейма увеличивается на единицу.
void USB_Device_SendRemoteWakeup | ( | void | ) |
Отправляет на хост запрос Remote Wakeup. Сигнализирует хосту, что устройство должно выйти из режима приостановки (suspended mode), и обмен данными должен продолжиться.
Обычно это реализовано, чтобы устройства HID (мыши, клавиатуры и т. п.) могли разбудить компьютер хоста, когда хост находится в режиме сна, и все устройства USB находятся в состоянии низкого энергопотребления.
uint8_t USB_ConfigurationNumber |
Показывает установленный в настоящий момент номер конфигурации устройства. Устройства USB могут иметь несколько различных конфигураций, между которыми хост может сделать выбор; эта переменная показывает выбранное значение, или 0, если не выбрана конфигурация.
Указывает, запитано ли устройство в настоящий момент от собственного источника питания, вместо того, чтобы быть запитанным от источника шины хоста USB. Этот флаг должен оставаться очищенным, если устройство не поддерживает режим самостоятельного питания, и его значение указывается в дескрипторах устройства.
volatile uint8_t USB_DeviceState |
Показывает текущее состояние машины устройства USB. В режиме работы устройства USB, это показывает состояние через одно из значений перечисления USB_Device_States_t.
Это значение не должно быть изменено в приложении пользователя, поскольку оно автоматически обрабатывается библиотекой. Только одно исключение из этого правила - если используется токен NO_LIMITED_CONTROLLER_CONNECT (см. события EVENT_USB_Device_Connect() и EVENT_USB_Device_Disconnect()).
Чтобы уменьшить размер программы и ускорения проверки этой глобальной переменной, она может быть размещена в аппаратные регистры GPIOR AVR вместо RAM, путем задания токена DEVICE_STATE_AS_GPIOR в значение между 0 и 2 в makefile проекта и передачи его компилятору через ключ -D. Когда токен задан, то соответствующий регистр GPIOR не может быть использован программой пользователя, за исколючением неявного использования через API библиотеки.
Показывает, разрешено ли в настоящий момент хостом выдача устройством событий удаленного пробуждения (remote wakeup events). Если этот флаг очищен, то устройство не должно выдавать хосту события удаленного пробуждения.