STMCU小助手
发布时间:2021-12-15 11:00
|
虽然可以使用DMA对数据进行传输, 但是采集传输完成,其他外设或者主线程是需要知道是否采集完成,才能使用这个数据的。 如果我们设置好了传输完成中断,就可以实现了。 在STM32F7中文参考手册中,有关于EOC的介绍:1 e x2 H/ b- N) z6 g! t
EOC有以下取值:
对于我们的单个ADC通道采样,使用ADC_EOC_SEQ_CONV就可以了; 对于一组多个进行采样,可以选择单通道转换完成就进入中断ADC_EOC_SEQ_CONV,也可以选择多通道转换完成进入中断ADC_EOC_SINGLE_CONV ; 至于最后一个保留值……不小心设置了一下采集出来的数据我直呼看不懂,大家就不用去试了……: [! l; Q7 Y9 ^( f/ @# j. q5 E3 C 8 b+ t, c6 g9 Q, a' B% h$ `1 ^ 在我们的STM32F7实现ADC等周期采集(定时器触发+DMA传输)上进行修改: NVIC配置 W( Z) `$ o' i7 o 不配置是没办法进行中断向量跳转的,这个不用解释。 5 n4 N( U# @& H! N' o) D
配置EOC类型0 G$ C- d1 l$ b3 g! M 选择转换结束引发中断的源,就前面讲的两个参数根据自己的需求设置就行了。 $ s" t, }" W7 V* k- o! T5 `& r
使能EOC中断% _4 ^& h6 |& k( O+ t. x- A 在启动ADC之前,我们要打开EOC中断。3 p Q: I6 M& L) A% X( a; P 4 s/ c! V( A6 ^# {
然后编写中断服务函数,一个是自己需要做的事情,另一个就是调用HAL库对应的函数HAL_ADC_IRQHandler清除中断标志等操作。
) z. ~- W- g2 H0 ^" M& w |
STM32F746G-DISCO移植lvgl9.0性能基准测试
STM32F745 USART1 Bootloader启动失败排查与解决的流程分析
STM32芯片命名规则
STM32 引脚到底有多少?为什么一个引脚能当好几个用?
入门嵌入式,为什么STM32是“优选起步”?
嵌入式-单片机-STM32 EXTI中断
STM32单片机进行除零运算,为何程序不崩溃?
STM32 LL为什么比HAL高效?
STM32时钟详解
2025国庆中秋活动体验报告2——TouchGFX的UI设计
微信公众号
手机版