虽然可以使用DMA对数据进行传输, 但是采集传输完成,其他外设或者主线程是需要知道是否采集完成,才能使用这个数据的。% @7 s" g5 _# Z' H7 l8 [ 如果我们设置好了传输完成中断,就可以实现了。& q8 x* ]+ @7 \: y) U 在STM32F7中文参考手册中,有关于EOC的介绍:1 W% @" Q \) {4 n 1 R, ^8 ]2 {6 ?; `4 B8 Y # y0 [( h+ ] T+ i EOC有以下取值:- Q" }" K2 @- ~! T) E
对于我们的单个ADC通道采样,使用ADC_EOC_SEQ_CONV就可以了; 对于一组多个进行采样,可以选择单通道转换完成就进入中断ADC_EOC_SEQ_CONV,也可以选择多通道转换完成进入中断ADC_EOC_SINGLE_CONV ; 至于最后一个保留值……不小心设置了一下采集出来的数据我直呼看不懂,大家就不用去试了……! v# X7 `0 [% M% b+ V4 W, Q! f : A' x* x% r& Z0 l3 H: E NVIC配置 不配置是没办法进行中断向量跳转的,这个不用解释。
配置EOC类型 选择转换结束引发中断的源,就前面讲的两个参数根据自己的需求设置就行了。2 T; U* i0 N8 p$ {
使能EOC中断, z' ^: S2 x @( c3 N 在启动ADC之前,我们要打开EOC中断。% K0 g7 b2 L9 S! [$ h: v1 u; E# _; K
然后编写中断服务函数,一个是自己需要做的事情,另一个就是调用HAL库对应的函数HAL_ADC_IRQHandler清除中断标志等操作。0 G" G# c! v. y, ^+ J
————————————————; b6 ?$ f+ T& c' T 版权声明:小盼你最萌哒如有侵权请联系删除 I9 V4 Z& j2 \+ U* V7 [ " Z/ A) w& F/ ?' i9 i |
基于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脉冲模式