# 中断调试测试指南 ## 问题分析 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. 编译器版本和设置