
虽然可以使用DMA对数据进行传输, 但是采集传输完成,其他外设或者主线程是需要知道是否采集完成,才能使用这个数据的。 如果我们设置好了传输完成中断,就可以实现了。 在STM32F7中文参考手册中,有关于EOC的介绍: ![]() EOC有以下取值:
对于我们的单个ADC通道采样,使用ADC_EOC_SEQ_CONV就可以了; 对于一组多个进行采样,可以选择单通道转换完成就进入中断ADC_EOC_SEQ_CONV,也可以选择多通道转换完成进入中断ADC_EOC_SINGLE_CONV ; 至于最后一个保留值……不小心设置了一下采集出来的数据我直呼看不懂,大家就不用去试了…… 在我们的STM32F7实现ADC等周期采集(定时器触发+DMA传输)上进行修改: NVIC配置 不配置是没办法进行中断向量跳转的,这个不用解释。
配置EOC类型 选择转换结束引发中断的源,就前面讲的两个参数根据自己的需求设置就行了。
使能EOC中断 在启动ADC之前,我们要打开EOC中断。
然后编写中断服务函数,一个是自己需要做的事情,另一个就是调用HAL库对应的函数HAL_ADC_IRQHandler清除中断标志等操作。
|
25个STM32问答,考验你基础的时候到了
概述STM32
STM32的基本知识
STM32入门指南:从零开始,如何为你的首个项目选择最合适的MCU?
STM32F769I-DISCO开发板GUI学习内容(二)_课前硬件基础
基于STM32F767通过cube配置:QSPI接口读写64M PSRAM+flash参考资料...
【实战经验】基于STM32F7的网络时间同步例程
STM32硬件结构学习
STM32中BOOT的作用
【STM32F769I-DISC1】开发板刷入Micropython并完成点灯、读取内部温度测试