Ini adalah perpustakaan yang dikembangkan untuk membantu menggunakan Papan Host USB - USB Flash Drive Reader/Writer, oleh Hobbytronics, dengan ESP32.
Dewan sudah memiliki chip yang perintah proses yang dikirim oleh UART, tetapi untuk membuat hal -hal kurang rumit saya menulis beberapa fungsi, jadi saya tidak perlu khawatir tentang beberapa detail setiap kali.
Halaman web Hobbytronics memberikan beberapa informasi tentang perintah yang mungkin berguna. Ini juga memiliki beberapa contoh, tetapi untuk Arduino.
Di Main/USB2ESP_DEMO_MAIN.c kami memiliki beberapa tugas
Tugas yang berkedip yang dipimpin untuk menunjukkan ESP sedang bekerja
Tugas yang memanggil gangguan perangkat lunak setiap 10 ms. Ideia adalah untuk mengganggu UART sebanyak mungkin
Tugas yang menunggu pesan dari USB.
Tugas yang mengirim perintah untuk USB.
Di TX_Task saya menulis beberapa contoh cara menggunakan setiap fungsi.
Ada 5 contoh:
Ex = 0 -> Tampilkan Bantuan, dalam Mode Terminal. Ini berguna untuk menguji laju baud
ex = 1 -> buat file dan tulis
ex = 2 -> Baca file
Ex = 3 -> Salin, Hapus dan Ganti Nama File
Ex = 4 -> Operasi Direktori
ex = 5 -> tulis string 128kb
Catatan: Dalam EX 5, kami menulis string besar. Kami melakukan ini untuk menunjukkan bahwa fungsi uart_write_bytes FEED WDT, dan kami tidak perlu khawatir tentang ini.
Semua fungsi mengembalikan jumlah byte yang dikirim. Itu bisa berubah di masa depan untuk sesuatu yang lebih berguna.
int sendData(uart_port_t UART_NUM, const char* data)
Fungsi yang mengirim data oleh UART_NUM . Penggunaan internal.
int setTime(uart_port_t UART_NUM, char* time);
USB Breakout memiliki jam waktu internal, tetapi tidak memiliki baterai sehingga kita perlu mengaturnya setiap kali kita menyalakannya. Waktu perlu format [hh: mm: ss].
int setDate(uart_port_t UART_NUM, char* date);
USB Breakout memiliki jam waktu internal, tetapi tidak memiliki baterai sehingga kita perlu mengaturnya setiap kali kita menyalakannya. Tanggal perlu format [yyyy-mm-dd].
int createFile(uart_port_t UART_NUM, char* filename);
Buat file di direktori aktual dengan nama file .
int appendFile(uart_port_t UART_NUM, char* filename);
Buka file di direktori sebenarnya bernama fileName .
int writeOnFile(uart_port_t UART_NUM, char* s, int ssize);
Karena file dibuka atau dibuat, tulis string S dengan ukuran ssize di file.
int closeFile(uart_port_t UART_NUM);
Kirim perintah kontrol+z, dengan file tutup.
int dir(uart_port_t UART_NUM, char* filename);
Ini mirip dengan Bash ls . Jika nama file adalah "", semua file terdaftar. Jika nama file adalah "*.txt", hanya file txt yang terdaftar.
int fileSize(uart_port_t UART_NUM, char* filename, int mode);
Perintah ukuran file penghitungan itu. Itu dapat menghitung jumlah byte (mode = byte) atau jumlah baris (mode = baris).
int readFile(uart_port_t UART_NUM, char* filename);
Baca seluruh file dengan nama file .
int readLine(uart_port_t UART_NUM, char* filename, int line);
Baca hanya baris baris dalam nama file file.
int readNextLine(uart_port_t UART_NUM, char* filename);
Setelah menggunakan perintah readLine() , Anda dapat menggunakan readNextLine() untuk membaca baris file file berikutnya.
int readSection(uart_port_t UART_NUM, char* filename, int start, int len);
Baca bagian dari nama file. Bagian ini dimulai pada byte start dan berakhir pada byte start + len .
int readNextSection(uart_port_t UART_NUM, char* filename, int len);
Setelah menggunakan perintah readSection() , Anda dapat menggunakan readNextSection() untuk membaca bagian selanjutnya dari file nama file. Sebagai contoh: filename.txt adalah "abcdef" readSection (uart_num, "filename.txt", 0, 4); // UART menerima "ABCD" ReadNextSection (UART_NUM, "FileName.txt", 2); // UART menerima "EF"
int copyFile(uart_port_t UART_NUM, char* origin, char* destiny);
Salin File Asal untuk File Destiny .
int delFile(uart_port_t UART_NUM, char* filename);
Hapus nama file file.
int renameFile(uart_port_t UART_NUM, char* oldname, char* newname);
Ganti nama file oldname ke newname .
int makeDir(uart_port_t UART_NUM, char* dirname);
Setara dengan Bash mk , buat direktori baru dengan nama dirname .
int changeDir(uart_port_t UART_NUM, char* dirname);
Setara dengan Bash cd , ubah menjadi direktori dirname .
int removeDir(uart_port_t UART_NUM, char* dirname);
Hapus Dirname Direktori.
int setBaud(uart_port_t UART_NUM, char* baudrate);
Ubah Baud Rate ke Baudrate . Nilai yang Diizinkan: [2400 | 4800 | 9600 | 14400 | 19200 | 38400 | 57600 | 115200]