STMCU小助手
发布时间:2021-12-15 11:00
|
虽然可以使用DMA对数据进行传输, 但是采集传输完成,其他外设或者主线程是需要知道是否采集完成,才能使用这个数据的。/ P0 _* X& Y# V* C( ?9 i 如果我们设置好了传输完成中断,就可以实现了。 在STM32F7中文参考手册中,有关于EOC的介绍:
' f3 }/ }* T% L5 g' } EOC有以下取值:/ c- q/ }1 a) t v6 V& N; k
对于我们的单个ADC通道采样,使用ADC_EOC_SEQ_CONV就可以了; 对于一组多个进行采样,可以选择单通道转换完成就进入中断ADC_EOC_SEQ_CONV,也可以选择多通道转换完成进入中断ADC_EOC_SINGLE_CONV ; 至于最后一个保留值……不小心设置了一下采集出来的数据我直呼看不懂,大家就不用去试了……7 }1 t. h7 R9 n7 y L/ N6 E 0 m( @) c# c* x7 G: x 在我们的STM32F7实现ADC等周期采集(定时器触发+DMA传输)上进行修改: NVIC配置1 f4 H( R+ p9 n1 I 不配置是没办法进行中断向量跳转的,这个不用解释。0 K/ K3 @- A/ u3 } z4 @% m" t
配置EOC类型 x. e" F+ H4 D& a, d9 n 选择转换结束引发中断的源,就前面讲的两个参数根据自己的需求设置就行了。 ' H; v$ F3 o* F0 c: f* K
使能EOC中断9 c* L7 s- e9 k. n* A# n' v: P 在启动ADC之前,我们要打开EOC中断。2 _/ [2 p" |" J! K
然后编写中断服务函数,一个是自己需要做的事情,另一个就是调用HAL库对应的函数HAL_ADC_IRQHandler清除中断标志等操作。' Y. O8 w: d" Z/ E8 g/ h" S 5 ~* `5 E8 R& e5 ~* Q
* l L+ @! T8 A- F2 x |
基于STM32F767通过cube配置:QSPI接口读写64M PSRAM+flash参考资料...
STM32F746G-DISCO移植lvgl9.0性能基准测试
STM32F745 USART1 Bootloader启动失败排查与解决的流程分析
STM32芯片命名规则
STM32 引脚到底有多少?为什么一个引脚能当好几个用?
入门嵌入式,为什么STM32是“优选起步”?
嵌入式-单片机-STM32 EXTI中断
STM32单片机进行除零运算,为何程序不崩溃?
STM32 LL为什么比HAL高效?
STM32时钟详解
微信公众号
手机版