
虽然可以使用DMA对数据进行传输, 但是采集传输完成,其他外设或者主线程是需要知道是否采集完成,才能使用这个数据的。" ~% `- c# O; o9 C# } ? 如果我们设置好了传输完成中断,就可以实现了。" z* T. A0 z! b& N9 H5 O 在STM32F7中文参考手册中,有关于EOC的介绍: ![]() EOC有以下取值:3 f" {) @8 ^: U1 v; q9 r4 \
对于我们的单个ADC通道采样,使用ADC_EOC_SEQ_CONV就可以了;0 [! d" p; f; l. s9 F2 _! P& M 对于一组多个进行采样,可以选择单通道转换完成就进入中断ADC_EOC_SEQ_CONV,也可以选择多通道转换完成进入中断ADC_EOC_SINGLE_CONV ;& E# x/ t+ R1 O0 S6 I; [8 z 至于最后一个保留值……不小心设置了一下采集出来的数据我直呼看不懂,大家就不用去试了……( Z, C* s5 x* X6 C3 i8 W: |5 } 在我们的STM32F7实现ADC等周期采集(定时器触发+DMA传输)上进行修改: 4 T- ]) z" i! X/ k. t9 S NVIC配置* V7 p0 W0 Q/ s' I2 ^ 不配置是没办法进行中断向量跳转的,这个不用解释。: S2 ]9 H% I! N' `
配置EOC类型 选择转换结束引发中断的源,就前面讲的两个参数根据自己的需求设置就行了。 : o! Y/ d+ L0 @( }) Y% d) I
使能EOC中断" b: m$ F. @. X. i, Y 在启动ADC之前,我们要打开EOC中断。 8 [* o3 d6 T! v' ? H# w2 a
然后编写中断服务函数,一个是自己需要做的事情,另一个就是调用HAL库对应的函数HAL_ADC_IRQHandler清除中断标志等操作。& R. y2 q- H# t" X9 A, F; ^
! ~, _# Q B: v g0 S/ U# V |
【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盘音乐的播放器