這是一個圖書館開發,可幫助使用USB主機板-USB Flash Drive讀取器/作家,由HobbyTronics和ESP32進行。
董事會已經有一個芯片,該過程是UART發送的過程命令,但是要使事情變得不那麼複雜,我寫了一些功能,因此我不必擔心一些細節。
HobbyTronics網頁提供了有關命令可能有用的一些信息。它也有一些例子,但對於Arduino。
在MAIN/USB2ESP_DEMO_MAIN.C中,我們有一些任務
閃爍的任務顯示ESP正在工作
每10毫秒調用軟件中斷的任務。理論家將盡可能多地打斷UART
等待USB消息的任務。
為USB發送命令的任務。
在TX_TASK中,我寫了一些有關如何使用每個功能的示例。
有5個例子:
ex = 0->只需在終端模式下顯示幫助即可。測試波特率很有用
ex = 1->創建文件並寫
例如= 2->讀取文件
ex = 3->複製,刪除和重命名文件
ex = 4->目錄操作
ex = 5->寫128kb字符串
注意:在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突破具有內部時間時鐘,但是它沒有電池,因此我們每次打開它都需要設置它。時間需要是[HH:MM:SS]格式。
int setDate(uart_port_t UART_NUM, char* date);
USB突破具有內部時間時鐘,但是它沒有電池,因此我們每次打開它都需要設置它。日期需要是[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 。
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 = 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);
閱讀文件文件名的一部分。該部分始於字節啟動和結尾,從字節啟動+ len開始。
int readNextSection(uart_port_t UART_NUM, char* filename, int len);
使用命令readSection()之後,您可以使用readNextSection()讀取文件文件名的下一部分。示例:filename.txt是“ abcdef” readSection(uart_num,“ filename.txt”,0,4); // UART接收“ ABCD” readNextSection(uart_num,“ filename.txt”,2); // UART收到“ EF”
int copyFile(uart_port_t UART_NUM, char* origin, char* 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]