
虽然可以使用DMA对数据进行传输, 但是采集传输完成,其他外设或者主线程是需要知道是否采集完成,才能使用这个数据的。: b0 M( o6 W! ?8 H" h 如果我们设置好了传输完成中断,就可以实现了。 在STM32F7中文参考手册中,有关于EOC的介绍: ![]() 0 \' h4 ?4 c/ W9 r* ? Z EOC有以下取值:5 v! I, A9 e" H/ }- ]% N
对于我们的单个ADC通道采样,使用ADC_EOC_SEQ_CONV就可以了; 对于一组多个进行采样,可以选择单通道转换完成就进入中断ADC_EOC_SEQ_CONV,也可以选择多通道转换完成进入中断ADC_EOC_SINGLE_CONV ;0 p+ U0 u3 i2 G! r7 R; s4 U 至于最后一个保留值……不小心设置了一下采集出来的数据我直呼看不懂,大家就不用去试了…… - g0 f1 B7 U2 K' N8 b 在我们的STM32F7实现ADC等周期采集(定时器触发+DMA传输)上进行修改: ' f. b. _6 P% v/ ^# i, r NVIC配置 不配置是没办法进行中断向量跳转的,这个不用解释。% k* c6 C$ I) \. B$ P " ]! Q7 I) G0 O
配置EOC类型! |0 [5 q3 n) W0 v5 S 选择转换结束引发中断的源,就前面讲的两个参数根据自己的需求设置就行了。 - }. p+ `- n; K- e) P" ^
使能EOC中断 在启动ADC之前,我们要打开EOC中断。# D( d+ T6 ]3 X1 K. V
然后编写中断服务函数,一个是自己需要做的事情,另一个就是调用HAL库对应的函数HAL_ADC_IRQHandler清除中断标志等操作。* d5 Z7 A1 f1 ~5 w, g; b 7 l U1 ?) J6 b7 R
. q# P( h# P% |8 H$ w + ~0 D* G- R2 v _! t, ~+ ] 3 a4 v+ k+ b5 R) W* t; @* i |
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教程、资料大集合