# 中断调试测试指南

## 问题分析
GPIO19一直保持低电平，说明定时器中断没有正常运行。可能的原因包括：

### 1. 时钟配置问题
- APB_Clock_Freq计算错误
- TIMER0时钟未使能
- 时钟频率配置不正确

### 2. 中断配置问题
- NVIC中断未正确使能
- 中断向量表配置错误
- 中断优先级设置问题

### 3. 定时器配置问题
- 定时器重装载值计算错误
- 定时器控制寄存器配置错误
- 定时器时钟源配置错误

## 修复措施

### 1. 时钟配置修复
- 修复了`ClockInit()`中清零APB时钟使能的问题
- 修复了`wavegen_Init()`中覆盖时钟使能的问题
- 使用`|=`操作符避免覆盖TIMER0时钟使能

### 2. 添加调试信息
- 在`TIMER0_Init()`中添加重装载值输出
- 在`main()`中添加APB时钟频率输出
- 在中断处理函数中添加调试输出

### 3. 中断处理优化
- 每100次中断输出一次调试信息
- 每1000次中断翻转一次GPIO19
- 添加GPIO状态监控

## 测试步骤

### 1. 编译和烧录
1. 重新编译项目
2. 烧录到目标芯片
3. 连接UART串口

### 2. 观察输出
通过UART观察以下信息：
```
APB_Clock_Freq: 32000000 Hz
TIMER0重装载值: 32000
TIMER0_Init完成，中断周期: 1 ms
========================================
定时器电刺激综合测试启动
========================================
Timer IRQ: 100, GPIO19 State: 0
Timer IRQ: 200, GPIO19 State: 0
...
Timer IRQ: 1000, GPIO19 State: 1
1 s - 定时器运行正常，电刺激同步输出中
```

### 3. 硬件测试
- 用示波器或万用表监测GPIO19
- 观察GPIO19是否每1秒翻转一次
- 检查GPIO19的电平变化

## 预期结果

### 正常情况
- UART输出显示定时器中断正常运行
- GPIO19每1秒翻转一次（高电平↔低电平）
- 中断计数器正常递增

### 异常情况
- 如果APB_Clock_Freq为0，说明时钟配置有问题
- 如果TIMER0重装载值为0，说明定时器配置有问题
- 如果没有中断输出，说明中断未正确使能

## 进一步调试

如果问题仍然存在，请检查：

### 1. 芯片型号
- 确认芯片支持TIMER0外设
- 检查芯片的时钟配置

### 2. 硬件连接
- 确认GPIO19引脚连接正确
- 检查电源和地连接

### 3. 编译器设置
- 确认中断向量表正确配置
- 检查编译器优化设置

## 常见问题解决

### 1. APB_Clock_Freq为0
- 检查时钟配置结构体
- 确认HSI频率设置正确

### 2. 中断不触发
- 检查NVIC中断使能
- 确认中断向量表配置
- 检查定时器控制寄存器

### 3. GPIO不翻转
- 检查GPIO初始化
- 确认GPIO方向设置
- 验证GPIO翻转函数

## 联系支持
如果问题仍然存在，请提供：
1. 芯片型号和版本
2. 完整的UART输出日志
3. 硬件连接图
4. 编译器版本和设置
