/
electronic_modules
/
USB
Обзор
Документация
Войти
/
electronic_modules
/
USB
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
USB.cpp
102 строки
2 KB
electronic_modules
USB
21 окт 2025, 12:31
21 окт 2025, 12:31
d349ad5
Код
Авторство
О чём код?
#include "USB.h" USB::USB(int USB_DATAP, int USB_DATAM) { _USB_DATAP = USB_DATAP; _USB_DATAM = USB_DATAM; _deviceConnected = false; _initialized = false; } void USB::initial() { pinMode(_USB_DATAP, INPUT_PULLUP); pinMode(_USB_DATAM, INPUT_PULLUP); // USB initialization sequence delay(100); usbReset(); _initialized = true; Serial.println(F("USB 1.1 Initialized")); } bool USB::deviceDetect() { if (!_initialized) return false; // Check for device presence on data lines bool dpState = digitalRead(_USB_DATAP); bool dmState = digitalRead(_USB_DATAM); // USB device detection logic _deviceConnected = (dpState == HIGH && dmState == LOW) || (dpState == LOW && dmState == HIGH); if (_deviceConnected) { Serial.println(F("USB Device Detected")); } return _deviceConnected; } bool USB::isConnected() { return _deviceConnected; } bool USB::dataAvailable() { if (!_deviceConnected) return false; // Simulate data availability check return digitalRead(_USB_DATAP) == LOW; } uint8_t USB::readData() { if (!_deviceConnected) return 0; // Simple data reading simulation uint8_t data = 0; // In real implementation, this would read actual USB data return data; } void USB::writeData(uint8_t data) { if (!_deviceConnected) return; // Simple data writing simulation // In real implementation, this would write to USB Serial.print(F("USB Write: 0x")); Serial.println(data, HEX); } void USB::finish() { _deviceConnected = false; _initialized = false; // Reset pins to high impedance pinMode(_USB_DATAP, INPUT); pinMode(_USB_DATAM, INPUT); Serial.println(F("USB Finished")); } void USB::usbReset() { // USB reset sequence pinMode(_USB_DATAP, OUTPUT); pinMode(_USB_DATAM, OUTPUT); digitalWrite(_USB_DATAP, LOW); digitalWrite(_USB_DATAM, LOW); delay(10); pinMode(_USB_DATAP, INPUT_PULLUP); pinMode(_USB_DATAM, INPUT_PULLUP); } bool USB::sendCommand(uint8_t command) { // Command sending implementation return true; } uint8_t USB::receiveResponse() { // Response receiving implementation return 0; }