
虽然可以使用DMA对数据进行传输, 但是采集传输完成,其他外设或者主线程是需要知道是否采集完成,才能使用这个数据的。7 v9 A2 s2 k3 M3 C, { 如果我们设置好了传输完成中断,就可以实现了。9 s# L+ s5 Y: h- y" V 在STM32F7中文参考手册中,有关于EOC的介绍: ![]() EOC有以下取值:, f9 z4 K p1 ^; H4 ~% o, D. Y7 `
对于我们的单个ADC通道采样,使用ADC_EOC_SEQ_CONV就可以了; 对于一组多个进行采样,可以选择单通道转换完成就进入中断ADC_EOC_SEQ_CONV,也可以选择多通道转换完成进入中断ADC_EOC_SINGLE_CONV ; 至于最后一个保留值……不小心设置了一下采集出来的数据我直呼看不懂,大家就不用去试了……# C o* x J+ y1 R , t w+ c7 h8 C+ S1 H 在我们的STM32F7实现ADC等周期采集(定时器触发+DMA传输)上进行修改: NVIC配置 不配置是没办法进行中断向量跳转的,这个不用解释。
配置EOC类型5 E. X, p& D2 r8 N* a' @+ j0 N 选择转换结束引发中断的源,就前面讲的两个参数根据自己的需求设置就行了。 ' B2 O3 @9 P5 x$ D. B8 B8 n
使能EOC中断$ {; {2 L0 C8 ]0 ]3 U, X4 t 在启动ADC之前,我们要打开EOC中断。7 t. U) D3 Z) D! r* y3 `. E2 k r & h1 z/ {3 y: v8 `; h4 r
然后编写中断服务函数,一个是自己需要做的事情,另一个就是调用HAL库对应的函数HAL_ADC_IRQHandler清除中断标志等操作。9 U" d8 }; l/ I6 G" G& ` " o' ^! N( r: j( n0 p
$ N* \8 W' R! y. H- r. h7 \ |
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
【合集】STM32F7教程、资料大集合