Electricity/移植说明.md

118 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 定时器电刺激综合测试工程移植说明
## 项目概述
本项目将ENS_EMSsine_TEST中的电刺激功能移植到TIMER_DEMO中实现GPIO定时翻转电平的同时电刺激通道输出方波且二者互不干扰。
## 移植内容
### 1. 新增文件
#### 升压电压选择模块
- `FWLIB/include/ENS1_BOOST.h` - 升压电压选择头文件
- `FWLIB/source/ENS1_BOOST.c` - 升压电压选择实现
**功能:**
- `boost_voltage_select_11V()` - 设置11V升压
- `boost_voltage_select_15V()` - 设置15V升压
- `boost_voltage_select_26V()` - 设置26V升压
- `boost_voltage_select_45V()` - 设置45V升压
- `boost_voltage_select_55V()` - 设置55V升压
#### 波形生成器模块
- `FWLIB/include/ENS1_WAVEGEN.h` - 波形生成器头文件
- `FWLIB/source/ENS1_WAVEGEN.c` - 波形生成器实现
**功能:**
- `wavegen_Init()` - 初始化波形生成器
- `wavegen_Start()` - 启动波形生成器
- `wavegen_Stop()` - 停止波形生成器
- `wavegen_driverA_sine_test()` - 驱动器A正弦波测试
- `EMS_Configure()` - 配置电刺激参数
- `EMS_Start()` - 启动电刺激
- `EMS_Stop()` - 停止电刺激
- `EMS_UpdateIntensity()` - 更新电刺激强度
- `EMS_Process()` - 电刺激主循环处理
### 2. 修改文件
#### 主程序 (USER/mian.c)
- 添加电刺激功能初始化
- 配置电刺激参数
- 在主循环中调用`EMS_Process()`处理电刺激
#### 定时器中断 (FWLIB/source/ENS1_TIMER.c)
- 修改定时器中断处理函数,添加电刺激状态提示
## 功能特性
### 1. 定时器功能
- GPIO19每1秒翻转一次电平
- 通过UART输出定时器状态信息
- 运行在定时器中断中
### 2. 电刺激功能
- 方波电刺激输出
- 可配置频率、强度、持续时间等参数
- 运行在主循环中,与定时器互不干扰
### 3. 系统配置
- 系统时钟32MHz HSI
- 升压电压26V默认
- UART波特率115200
- 定时器中断周期1ms
## 使用方法
### 1. 编译和烧录
1. 使用Keil MDK打开`ENS001_BASIC_PRJ.uvprojx`
2. 编译项目
3. 烧录到目标芯片
### 2. 运行效果
- GPIO19每1秒翻转一次用于指示定时器运行状态
- 电刺激通道输出方波信号
- 通过UART输出运行状态信息
### 3. 参数配置
可以通过修改`main()`函数中的`ems_config`结构体来调整电刺激参数:
```c
EMS_Config_TypeDef ems_config = {
.frequency = 100, // 频率 (Hz)
.duration = 1000, // 持续时间 (ms)
.intensity = 128, // 强度 (0-255)
.rest_time = 100, // 休息时间 (ms)
.silent_time = 50 // 静默时间 (ms)
};
```
## 技术特点
### 1. 模块化设计
- 升压模块独立封装
- 波形生成器模块独立封装
- 便于维护和扩展
### 2. 互不干扰
- 定时器运行在中断中
- 电刺激运行在主循环中
- 两个功能完全独立
### 3. 参数可配置
- 电刺激参数可通过结构体配置
- 升压电压可选择不同档位
- 便于适应不同应用需求
## 注意事项
1. 确保目标芯片支持波形生成器外设
2. 电刺激输出需要连接相应的电极
3. 升压电压选择需要根据实际应用需求调整
4. 电刺激强度不宜过高,避免对人体造成伤害
## 版本信息
- 版本V1.0
- 日期2023-11
- 作者NANOCHAP
- 移植自ENS_EMSsine_TEST