虽然可以使用DMA对数据进行传输, 但是采集传输完成,其他外设或者主线程是需要知道是否采集完成,才能使用这个数据的。; |) T. u1 O# ~4 Y/ B/ |+ ` 如果我们设置好了传输完成中断,就可以实现了。 在STM32F7中文参考手册中,有关于EOC的介绍:/ R- {2 l* `+ u+ T) w' K 1 e, B, X& K$ @- k. O5 ` , e$ d5 Z8 D/ _' E EOC有以下取值:
对于我们的单个ADC通道采样,使用ADC_EOC_SEQ_CONV就可以了; 对于一组多个进行采样,可以选择单通道转换完成就进入中断ADC_EOC_SEQ_CONV,也可以选择多通道转换完成进入中断ADC_EOC_SINGLE_CONV ; 至于最后一个保留值……不小心设置了一下采集出来的数据我直呼看不懂,大家就不用去试了……: t# z$ b$ {$ a/ U o' Q# O* t NVIC配置8 N* E1 Y# J( Q: |! a' U$ c 不配置是没办法进行中断向量跳转的,这个不用解释。; \. E. t; \4 ?$ u+ y# @% G
配置EOC类型8 s/ R. z1 x$ m+ P$ O, ] 选择转换结束引发中断的源,就前面讲的两个参数根据自己的需求设置就行了。2 M _, e& d* d2 N0 D9 T0 ^5 ]
使能EOC中断/ N( P6 \" [3 Z1 o6 P 在启动ADC之前,我们要打开EOC中断。
然后编写中断服务函数,一个是自己需要做的事情,另一个就是调用HAL库对应的函数HAL_ADC_IRQHandler清除中断标志等操作。
————————————————/ N3 O- a; f+ H2 Y% B: D 版权声明:小盼你最萌哒如有侵权请联系删除 7 J) q% V9 C* B9 F * f$ \& c9 M0 F7 a' Q8 ?% p |
基于STM32F746G-Discover的扩展电路板
【合集】STM32F7教程、资料大集合
F769 Discovery实现播放U盘音乐的播放器
STM32 VS Code Extension (在Ubuntu上开发STM32,ST官方vscode插件使用指南)
STM32F765@216MHz跑NES模拟器【代码】【视频】
基于STM32F7实现ADC软件触发+轮询采集
基于STM32F7进行ADC采集解决更新问题
基于STM32F7使用定时器经验分享
实现基于STM32F7中周期采集
基于STM32F767中SPI脉冲模式