ESP32에서 기본으로 제공하는 USB관련 예제는 다양하지 않아서 기존에 사용하던 TinyUSB 라이브러리를 사용해 USB를 테스트 해 보았다.
기존의TinyUSB 라이브러리는 Arduino에서 지원하지 않는다고 한다.
그래서 찾아보니 ESP32TinyUSB(https://github.com/chegewara/EspTinyUSB) 라이브러리가 있다.
#include "ramdisk.h"
//#define AUTO_ALLOCATE_DISK
#define BLOCK_COUNT 2 * 100
#define BLOCK_SIZE 512
#if CFG_TUD_MSC
USBramdisk dev;
void setup()
{
Serial.begin(115200);
#ifndef AUTO_ALLOCATE_DISK
uint8_t* disk = (uint8_t*)ps_calloc(BLOCK_COUNT, BLOCK_SIZE);
dev.setDiskMemory(disk, true); // pass pointer to allocated ram disk and initialize it with demo FAT12 (true)
#endif
dev.setCapacity(BLOCK_COUNT, BLOCK_SIZE); // if PSRAM is enableb, then ramdisk will be initialized in it
if(dev.begin()) {
Serial.println("MSC lun 1 begin");
} else log_e("LUN 1 failed");
}
void loop()
{
delay(1000);
}
#endif
반응형