Это библиотека, которая помогает использовать USB -хост -доску - USB -Flash Drive Reader/Writer, Hobbytronics, с ESP32.
У платы уже есть чип, который команды процесса, отправленные UART, но для того, чтобы сделать вещи менее сложными, я написал некоторые функции, поэтому мне не пришлось бы беспокоиться о некоторых деталях.
На веб -странице Hobbytronics предоставлена некоторая информация о команде, которая может быть полезна. У этого также есть несколько примеров, но для Arduino.
В main/usb2esp_demo_main.c у нас есть несколько задач
Задача, которая мигает, чтобы показать, что ESP работает
Задача, которая звонит по прерыванию программного обеспечения каждые 10 мс. Ideia - это как можно больше прервать UART
Задача, которая ожидает сообщений от USB.
Задача, которая отправляет команды для USB.
В TX_TASK я написал несколько примеров того, как использовать каждые функции.
Есть 5 примеров:
ex = 0 -> Просто покажите помощь, в режиме терминала. Это полезно для проверки скорости бода
ex = 1 -> Создать файл и записать
ex = 2 -> read files
ex = 3 -> копировать, удалить и переименовать файлы
Ex = 4 -> Операции каталогов
ex = 5 -> записать строку 128 КБ
Примечание. В Ex 5 мы пишем большую строку. Мы сделали это, чтобы показать, что функция uart_write_bytes FEED WDT, и нам не нужно беспокоиться об этом.
Все функции возвращает количество отправленных байтов. Это может измениться в будущем для чего -то более полезного.
int sendData(uart_port_t UART_NUM, const char* data)
Функция, которая отправляет данные UART_NUM . Внутреннее использование.
int setTime(uart_port_t UART_NUM, char* time);
USB Breakout имеет внутренние часы времени, но у него нет батареи, поэтому нам нужно устанавливать его каждый раз, когда мы включаем его. Время должно быть [HH: MM: SS] формат.
int setDate(uart_port_t UART_NUM, char* date);
USB Breakout имеет внутренние часы времени, но у него нет батареи, поэтому нам нужно устанавливать его каждый раз, когда мы включаем его. Дата должна быть [yyyy-mm-dd] формат.
int createFile(uart_port_t UART_NUM, char* filename);
Создайте файл в фактическом каталоге с именем файла .
int appendFile(uart_port_t UART_NUM, char* filename);
Откройте файл в фактическом каталоге с именем именем файла .
int writeOnFile(uart_port_t UART_NUM, char* s, int ssize);
Поскольку файл открыт или создан, запишите строку S с размером ssize в файле.
int closeFile(uart_port_t UART_NUM);
Отправить команду Control+Z, с закрытиями файлов.
int dir(uart_port_t UART_NUM, char* filename);
Это похоже на Bash ls . Если имя файла «», все файлы перечислены. Если имя файла «*.txt», перечислены только файлы TXT.
int fileSize(uart_port_t UART_NUM, char* filename, int mode);
Команда, который подсчитывает размер файла. Он может подсчитать количество байтов (mode = byte) или количество строк (mode = line).
int readFile(uart_port_t UART_NUM, char* filename);
Прочитайте весь файл с помощью имени файла .
int readLine(uart_port_t UART_NUM, char* filename, int line);
Прочитайте только строку в имени файла файла.
int readNextLine(uart_port_t UART_NUM, char* filename);
После использования команды readLine() вы можете использовать readNextLine() для прочтения следующей строки файла файла.
int readSection(uart_port_t UART_NUM, char* filename, int start, int len);
Прочитайте часть имени файла. Эта часть начинается с байтового старта и заканчиваться в Byte Start + Len .
int readNextSection(uart_port_t UART_NUM, char* filename, int len);
После использования команды readSection() вы можете использовать readNextSection() для прочтения следующего раздела файла файла. Для Exemple: fileName.txt - это «ABCDEF» Readsection (UART_NUM, "filename.txt", 0, 4); // UART получает "ABCD" ReadNextection (uart_num, "filename.txt", 2); // UART получает "EF"
int copyFile(uart_port_t UART_NUM, char* origin, char* destiny);
Скопируйте исходные файлы для подачи Destiny .
int delFile(uart_port_t UART_NUM, char* filename);
Удалить имя файла.
int renameFile(uart_port_t UART_NUM, char* oldname, char* newname);
Переименовать файл OldName до NewName .
int makeDir(uart_port_t UART_NUM, char* dirname);
Эквивалент Bash mk , создайте новый каталог с именем Dirname .
int changeDir(uart_port_t UART_NUM, char* dirname);
Эквивалент Bash cd , измените Directory Dirname .
int removeDir(uart_port_t UART_NUM, char* dirname);
Удалить каталог Dirname .
int setBaud(uart_port_t UART_NUM, char* baudrate);
Изменить ставку бодского бодрата . Разрешенные значения: [2400 | 4800 | 9600 | 14400 | 19200 | 38400 | 57600 | 115200]