Bootstrap

串口访问U盘/TF卡模块

采用两种方案实现了串口读写U盘的模块。

方案一:CH376+STM32G030

方案二:直接用STM32F401RCT6

CH376不是很好用,不支持长文件名,文件名格式也有要求,还必须全大写,操作也比较繁琐,价格也不便宜,不推荐使用。

STM32F401RCT6直接移植FATFS和USB库,没有什么限制,操作起来非常灵活好用。

串口U盘TF卡模块通信协议
数据包的结构包含:帧头2字节(0x55 0xAA)、指令(1字节)、数据长度(2字节)、数据(N字节)、CRC校验(2字节,前面所有字节的CRC校验)。

支持同时使用U盘和SD卡(FAT格式)
支持长文件名(255字节)

支持中文路径名
支持定制协议。

上位机->U盘TF卡模块,发送数据包指令数据说明:

指令

功能

数据内容

返回数据包指令

‘W’ (0x57)

Write

写文件

  1. 文件名,若干字节,以‘\0’结尾;
  2. 写入位置(文件指针偏移),4字节,高位在前;
  3. 要写入的数据,若干字节,支持最多一次写入50k字节

‘S’

‘R’ (0x52)

Read

读文件

1. 文件名,若干字节,以‘\0’结尾;

2. 读取位置(文件指针偏移),4字节,高位在前;

3. 要读取的字节数,2字节,高位在前,最多一次读取50k字节

‘R’

‘D’(0x44)

Delete

删文件或目录

文件或目录名,若干字节,以‘\0’结尾;

‘S’

‘M’ (0x4D)

Mkdir

创建目录

目录名,若干字节,以‘\0’结尾;

‘S’

‘N’ (0x4E)

reName

重命名文件或目录

  1. 旧文件或目录名,若干字节,以‘\0’结尾;
  2. 新文件或目录名,若干字节,以‘\0’结尾;

‘S’

‘L’

(0x4C)

List

读取目录下的文件和目录列表

1.目录名,若干字节,以‘\0’结尾;

最多返回255个文件名(当目录下文件数量超过255时,暂时只返回前255个,如不满足需求,可联系本人定制升级)

‘L’

‘B’ (0x42)

Baud rate

修改波特率,掉电后恢复默认115200

新的波特率值,4字节,高位在前,最高为5250000

无返回

‘E’ (0x45)

Echo

回显,即给模块发什么,模块就返回什么。用于测试通信是否正常。

若干数据(可为空)。

‘E’

‘Q’(0x51)

Query

查询U盘/TF卡是否插入且挂载成功

无。

‘Q’

注:文件名应为全路径文件名,文件名最长不超过255字节,支持中文名,支持U盘和TF卡同时使用,TF卡盘符为“0:/”,U盘盘符为“1:/”,例如在U盘根目录下的“123.txt”文件,其全路径文件名为:“1:/123.txt”。

测试软件及使用说明文档下载链接:
链接:https://pan.baidu.com/s/1ph-zwt2cSQF4gIKo-GhvtA?pwd=3rhq 

;