Professional Documents
Culture Documents
设计报告 中断处理
设计报告 中断处理
概述
程序使用了两个中断处理函数——“DMA1_Channel1_IRQHandler”和
“EXTI0_IRQHandler”。前者检测 DMA 被占满时发出的中断“DMA1_IT_TC1”,当检测到
该中断标志时停止 ADC 采样,开发板发送接收到的 4096 个采样值,并在发送完毕后恢复
ADC 采样。由于开发板是单线程工作的,通过这种方式可以有效避免因同时进行采样和发
送而造成的采样率下降。后者检测外部按键中断,当按键按下后开发板停止工作,按键再
次按下后继续工作。
详述
中断部分主要由陈毅程负责,包含了数据发送中断和按键中断
1 中断处理函数“DMA1_Channel1_IRQHandler”
编写了“USART_SendString”,“my_itoa”等函数来代替“printf”函数,从而大大提高了传输
效率。相应代码如下:
2 中断处理函数“EXTI0_IRQHandler”
添加了防抖处理。接收到按键中断后延时 150ms,避免因按键抖动导致清除中断标志位后
该中断重新出现,引起函数的误退出。
按键中断初始化函数“EXTI0_INT_INIT”
测试结果:开发板正常发送数据,同时采样结果与同时采样与发送相比精度更高。当按下
按键后,开发板既不采样也不发送数据,进入等待状态,再次按下按键开发板继续工作。
PCB 图:
陈毅程