这是一个图书馆开发,可帮助使用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]