From 09c881b4a666a06b3a1efb4e200a957a1b271078 Mon Sep 17 00:00:00 2001 From: wangbeihong Date: Mon, 16 Feb 2026 02:16:06 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9README?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 122 ++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 95 insertions(+), 27 deletions(-) diff --git a/README.md b/README.md index 1b57d40..ed1501d 100644 --- a/README.md +++ b/README.md @@ -1,27 +1,95 @@ -CLR(1); //使用红色填充整个屏幕,1为红色的色表编号 -DIR(1); //屏幕旋转方向: 0 竖向显示 1 旋转90°显示 2 竖向旋转180° 3 横向旋转180° -BPS(115200); //修改波特率为115200,掉电后自动保存设置,但注意波特率在修改过程中不允许掉电,建议只脱机修改一次 -BPS(38400); //支持波特率2 -BPS(19200); //支持的波特率3 -BPS(9600); //支持的波特率4 -FSIMG(2097152,0,0,176,220,0); //在MODE_CFG(0)/MODE_CFG(1)下,从(0,0)开始的位置显示第1张图片,图片的宽度是176 高度是220,最后的参数0表示正常显示。此为地址模式下显示图片指令 -FSIMG(0,0,0,176,220,0); //在MODE_CFG(2)下,从(0,0)开始的位置显示第1张图片,图片的宽度是176 高度是220,最后的参数0表示正常显示。此为编号模式下显示图片指令 -BL(20); //调整背光的亮度到20 范围:0为最亮 255为最暗 -PS(20,20,1); //在屏幕的(20,20) 位置用红色描绘一个点,1为红色的色表编号 -PL(0,0,90,90,1); //将屏幕的(0,0) 位置的点和(90,90)位置的点用红色的直线连起来 ,1为红色的色表编号 -BOX(20,20,40,40,1); //对角线(20,20)和(40,40)画线框 ,1为红色的色表编号 -BOXF(20,20,40,40,1); //对角线(20,20)和(40,40)画填充框 ,1为红色的色表编号 -CIR(60,60,3,1); //(60,60)为圆心 3为半径用红色画一个线圆 ,1为红色的色表编号 -CIRF(60,60,3,1); //(60,60)为圆心 3为半径用红色画一个填充圆, ,1为红色的色表编号 -SBC(1); //设置背景色为红色,此命令配合DCV和DC48指令一起使用 ,1为红色的色表编号 -DC16(30,30,'串口模块',1); // 用红色以(30,30)为起点,在屏幕上显示透明的'串口模块'这四个字,字体大小为16,1为红色的色表编号 -DCV16(30,30,'串口模块',1); //用红色以(30,30)为起点,在屏幕显示带背景色的'串口模块'这四个字,字体大小为16,1为红色的色表编号 -DC24(30,30,'串口模块',1); // 用红色以(30,30)为起点,在屏幕上显示透明的'串口模块'这四个字,字体大小为24,1为红色的色表编号 -DCV24(30,30,'串口模块',1); //用红色以(30,30)为起点,在屏幕显示带背景色的'串口模块'这四个字,字体大小为24,1为红色的色表编号 -DC32(30,30,'串口模块',1); //用红色以(30,30)为起点,在屏幕上显示透明的'串口模块'这四个字,字体大小为32,1为红色的色表编号 -DCV32(30,30,'串口模块',1); //用红色以(30,30)为起点,在屏幕显示带背景色的'串口模块'这四个字,字体大小为32,1为红色的色表编号 -DC48(30,46,'串口模块',1,0); //用红色以(30,46)为起点,在屏幕上显示透明的'串口模块'四个字,字体大小为48,1为红色的色表编号 参数0表示透明显示 -BTN(80,80,32,16,'按钮',1,0,1,4); //在(80,80)的位置显示一个下压的按钮,按钮字体为红色,背景为黄色 -QRCODE(10,10,www.sun-lcm.com); //在(10,10)的位置显示一个二维码,扫码后指向一个网页链接 注意目前只有MF022支持此指令 -QRCODE(10,10,www.sun-lcm.com,100,1); //在(10,10)的位置 显示限定大小为100(模块内部根据版本大小会自适应)颜色值为1(红色)的一个二维码,扫码后指向一个网页链接 注意目前只有MF219支持此指令 -VER(); //获取模块的固件版本信息 \ No newline at end of file +# SmartMassager_STM32 + +STM32 智能按摩椅控制系统项目 + +## 项目概述 + +本项目基于 STM32 微控制器开发的智能按摩椅控制系统,集成了串口屏显示、FreeRTOS 实时操作系统、多种传感器控制等功能。 + +## 硬件平台 + +- 主控芯片:STM32 系列微控制器 +- 显示屏:JC 系列串口屏(通过 USART1 通信) +- 操作系统:FreeRTOS 实时操作系统 + +## 软件架构 + +### 主要模块 + +1. **屏幕驱动模块** (`screen.c`) + - 串口屏底层驱动实现 + - 支持基本绘图功能(点、线、矩形、圆形) + - GBK 字符显示支持 + - 图片显示功能 + +2. **任务调度模块** + - 基于 FreeRTOS 的多任务管理 + - 各子系统任务协调运行 + +3. **日志系统** + - 集成 EasyLogger 日志框架 + - 多级别日志输出 + +### 核心功能 + +#### 屏幕控制 API +- `Screen_Init()` - 屏幕初始化 +- `Screen_Clear()` - 清屏 +- `Screen_DrawText16_GBK()` - 绘制16号字体GBK文本 +- `Screen_DrawText24_GBK()` - 绘制24号字体GBK文本 +- `Screen_Box()` - 绘制矩形框 +- `Screen_Line()` - 绘制直线 + +#### 电机控制 +- 多档位速度控制 +- 启动加速功能 +- 过流、超温保护 + +#### 按键处理 +- 防抖处理 +- 四个功能按键: + - M_KEY: 加档 + - M_KEYC7: 减档 + - HOT_KEY: 热敷开关 + - TIME_KEY: 定时功能 + +#### 音频播放 +- MP3音频播放支持 +- TF卡文件读取 + +## 开发环境 + +- IDE: STM32CubeIDE +- 编译器: GCC ARM +- 调试工具: ST-LINK + +## 构建说明 + +1. 克隆项目到本地 +2. 使用 STM32CubeIDE 导入项目 +3. 配置目标芯片型号 +4. 编译项目 +5. 通过 ST-LINK 下载到目标板 + +## 使用说明 + +1. 上电后系统自动初始化 +2. 屏幕显示设备名称和加载界面 +3. 初始化完成后进入主操作界面 +4. 通过按键控制按摩功能 + +## 注意事项 + +- 请确保电源电压符合要求 +- 避免在潮湿环境中使用 +- 定期检查连接线路 +- 如遇异常情况请立即断电 + +## 版本信息 + +- 当前版本: v1.0.0 +- 发布日期: 2024年 + +## 技术支持 + +如有问题请联系开发团队或查看相关技术文档。 \ No newline at end of file