
虽然可以使用DMA对数据进行传输, 但是采集传输完成,其他外设或者主线程是需要知道是否采集完成,才能使用这个数据的。 如果我们设置好了传输完成中断,就可以实现了。 在STM32F7中文参考手册中,有关于EOC的介绍: ![]() 6 f2 F8 G% R% ~4 s$ c EOC有以下取值:
对于我们的单个ADC通道采样,使用ADC_EOC_SEQ_CONV就可以了;6 o4 Z" W5 ]9 k 对于一组多个进行采样,可以选择单通道转换完成就进入中断ADC_EOC_SEQ_CONV,也可以选择多通道转换完成进入中断ADC_EOC_SINGLE_CONV ;/ N$ a# c) |0 m( Y: o& q- O 至于最后一个保留值……不小心设置了一下采集出来的数据我直呼看不懂,大家就不用去试了…… 3 D- Y- [& w2 S6 g$ E$ F 在我们的STM32F7实现ADC等周期采集(定时器触发+DMA传输)上进行修改:* Z, E' r; K* ]3 D! O & k% o$ g+ m6 I6 d1 F( U6 z2 C$ ] NVIC配置9 x% F3 b5 M. Y0 `! j q, f/ ~+ A- R& i8 Z) Z 不配置是没办法进行中断向量跳转的,这个不用解释。
配置EOC类型 选择转换结束引发中断的源,就前面讲的两个参数根据自己的需求设置就行了。
使能EOC中断 在启动ADC之前,我们要打开EOC中断。
然后编写中断服务函数,一个是自己需要做的事情,另一个就是调用HAL库对应的函数HAL_ADC_IRQHandler清除中断标志等操作。 5 h; B) D# b' j8 |$ C+ O
. _- i. g8 @$ `) H3 l+ C% @ * s( {9 j; Q7 ^( H& f6 R |
【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教程、资料大集合
基于STM32F746G-Discover的扩展电路板
F769 Discovery实现播放U盘音乐的播放器