This repository has been archived on 2024-02-21. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
Kinchin Fong dffc5c5f20 add pop data and read data 2023-10-10 21:04:20 +08:00
include add pop data and read data 2023-10-10 21:04:20 +08:00
src add pop data and read data 2023-10-10 21:04:20 +08:00
tools 添加从头读 100 个数据的功能。添加调试指令。 2023-09-14 21:02:59 +08:00
.gitignore 添加参数读写、上位机一次性读 100 条的功能 2023-09-13 21:03:42 +08:00
README.md add pop data and read data 2023-10-10 21:04:20 +08:00
partitions_12M_SPIFFS.csv init with spiffs 2023-09-07 20:01:46 +08:00
platformio.ini 修复一个格式化字符串输出的问题 2023-09-13 19:59:22 +08:00

README.md

开发说明

开发环境

  1. Windows
  2. PlatformIO + VSCode
  3. Python3.8 及以上版本

文件介绍

src 中的源文件与 include 中的头文件一一对应。

  • main.cpp: 入口函数
  • VFileSystem: 文件系统接口
  • DataRecorder: 数据读写接口
  • ConfigManager: 配置项接口
  • InterSerial: 与 STM32 通讯的串口功能
  • UpperSerial: 与上位机通讯的串口功能

固件烧录流程

  1. 在 PlatformIO 中打开项目并等待依赖库加载完成
  2. 进入 tools 目录,并用 Python 运行 init_fs.py
  3. 设备上电,按 boot 和 reset 进入 boot 模式
  4. 点击侧边栏的 PlatformIO 工具,在 PROJECT TASKS 选项卡下,点击 esp32-s2-sensor-recorder -> Platform -> Upload Filesystem Image 等待文件系统上传完成
  5. 编译并上传代码固件
  6. 手动 reset

指令列表

注意,所有指令要以“回车换行”结尾。

内部串口指令

指令格式 请求样例 回复格式 回复样例 说明
AT AT OK OK 测试串口是否连通
AT+MSGSTORE=len,data AT+MSGSTORE=10,00AA02F556789098783E OK/ERROR OK 向队尾存储一条数据
AT+MSGREAD=? AT+MSGREAD=? index,len,data/ERROR 25,10,00AA02F556789098783E 读取队头的一条数据,但不删除此数据
AT+MSGPOP=? AT+MSGPOP=? index,len,data/ERROR 25,10,00AA02F556789098783E 读取队头的一条数据,并删除此数据
AT+DEVIDREAD=? AT+DEVIDREAD=? ID/ERROR NHND02458821 读取设备唯一序列号
AT+SYSCFGREAD=? AT+SYSCFGREAD=? config/ERROR 0,9,6 读取配置
AT+FORCESAVE AT+FORCESAVE OK/ERROR OK 强制写入队列数据至 Flash

上位机串口指令

指令格式 请求样例 回复格式 回复样例 说明
AT AT OK OK 测试串口是否连通
AT+MSGREAD=? AT+MSGREAD=? index,len,data * 100/ERROR 25,10,00AA02F556789098783E * 100 读取队头最多 100 条数据,并删除这些数据
AT+MSGREAD=index AT+MSGREAD=100 index,len,data * 100/ERROR 25,10,00AA02F556789098783E * 100 从 Flash 的指定位置开始读 100 条数据,不影响队列指针
AT+DEVIDREAD=? AT+DEVIDREAD=? ID/ERROR NHND02458821 读取设备唯一序列号
AT+DEVIDSET=ID AT+DEVIDSET=NHND12222333 OK/ERROR OK 写入设备唯一序列号
AT+SYSCFGREAD=? AT+SYSCFGREAD=? config/ERROR 0,9,6 读取配置
AT+SYSCFGSET=config AT+SYSCFGSET=0,9,6 OK/ERROR OK 写入配置
AT+FORCESAVE AT+FORCESAVE OK/ERROR OK 强制写入队列数据至 Flash
AT+RECHEADINDEX=? AT+RECHEADINDEX=? head 34 读取当前队头 index
AT+RECTAILINDEX=? AT+RECTAILINDEX=? tail 56 读取当前队尾 index
AT+RECCOUNT=? AT+RECCOUNT=? count 46 读取当前存储的数据条数

注意

  1. 文件系统和固件烧录后会报一个错, WARNING: ESP32-S2 chip was placed into download mode using GPIO0. 因为 USB 烧录无法自动 reset。直接忽略即可。
  2. 与上位机通讯的串口,请在上位机打开 DTR 和 RTS 流控
  3. 存储数据时,至多要存储 8 条数据才会实际写入 Flash。读取数据时至多要读取 64 次才会将队列指针写入 Flash。
  4. 若要立刻保存,请使用 AT+FORCESAVE 指令