
虽然可以使用DMA对数据进行传输, 但是采集传输完成,其他外设或者主线程是需要知道是否采集完成,才能使用这个数据的。 如果我们设置好了传输完成中断,就可以实现了。 在STM32F7中文参考手册中,有关于EOC的介绍: ![]() 3 C& `0 `5 q! b/ J2 {, m EOC有以下取值:
对于我们的单个ADC通道采样,使用ADC_EOC_SEQ_CONV就可以了;$ u: K+ K J4 Q5 [, w+ [( Q0 p 对于一组多个进行采样,可以选择单通道转换完成就进入中断ADC_EOC_SEQ_CONV,也可以选择多通道转换完成进入中断ADC_EOC_SINGLE_CONV ; 至于最后一个保留值……不小心设置了一下采集出来的数据我直呼看不懂,大家就不用去试了…… 在我们的STM32F7实现ADC等周期采集(定时器触发+DMA传输)上进行修改: . l/ W5 S1 z( h: t. w NVIC配置 不配置是没办法进行中断向量跳转的,这个不用解释。
配置EOC类型" V5 v' U# M0 ?5 }0 ^ 选择转换结束引发中断的源,就前面讲的两个参数根据自己的需求设置就行了。# L$ R% G" D% ]* h$ o 1 J+ i1 n1 E8 L" J, n% n
使能EOC中断( C" L% a: j- ~: K 在启动ADC之前,我们要打开EOC中断。 7 B# E" O' X9 }" E* u
然后编写中断服务函数,一个是自己需要做的事情,另一个就是调用HAL库对应的函数HAL_ADC_IRQHandler清除中断标志等操作。1 h& I; y0 J* Q5 M! a ( G* ]3 V& y8 O
# T& X* Z3 |# ~- x 6 s4 S$ a2 B3 n1 D/ f7 i4 }% F |
【实战经验】基于STM32F7的网络时间同步例程
STM32硬件结构学习
STM32中BOOT的作用
【STM32F769I-DISC1】开发板刷入Micropython并完成点灯、读取内部温度测试
【STM32F769I-DISC1】测评01:创建STM32cube IDE 工程,点个灯
【STM32F769】创建deepseek本地服务,并实现http请求
汇编浮点库qfplib移植STM32F769I-DISCO开发板与硬件浮点运算性能测试对比
coremark移植到STM32F769I-DISCO开发板的两种方法
【GUI板免费申请活动】【圣诞GUI】使用F746-DISO基于TouchGFX的圣诞树
刘氓兔的杂谈【001】-片上USB 高速PHY