STM32的HAL库开发系列 - ADC中断

简介: STM32的HAL库开发系列 - ADC中断

STM32的HAL库开发系列 - ADC中断

ADC_InitTypeDef结构体

typedef struct {
   uint32_t ClockPrescaler;        /*ADC时钟分频系数 */
   uint32_t Resolution;            /*ADC分辨率选择 */
   uint32_t DataAlign;             /*输出数据对齐方式 */
   uint32_t ScanConvMode;          /*扫描转换模式 */
   uint32_t EOCSelection;          /*转换结束标志使用轮询或者中断*/
   uint32_t ContinuousConvMode;    /*连续转换模式 */
   uint32_t NbrOfConversion;       /*规格转换序列数目 */
   uint32_t DiscontinuousConvMode; /*不连续采样模式 */
   uint32_t NbrOfDiscConversion;   /*不连续采样通道 */
   uint32_t ExternalTrigConv;      /*外部事件触发选择 */
   uint32_t ExternalTrigConvEdge;  /*外部事件触发极性 */
   uint32_t DMAContinuousRequests; /*DMA连续请求转换 */
} ADC_InitTypeDef;

转换结束中断

数据转换结束后,可以产生中断,中断分为四种:规则通道转换结束中断,注入转换通道转换结束中断,模拟看门狗中断和溢出中断。其中转换结束中断很好理解,跟我们平时接触的中断一样,有相应的中断标志位和中断使能位,我们还可以根据中断类型写相应配套的中断服务程序。

溢出中断

如果发生DMA传输数据丢失,会置位ADC状态寄存器ADC_SR的OVR位,如果同时使能了溢出中断,那在转换结束后会产生一个溢出中断。

模拟看门狗中断

当被ADC转换的模拟电压低于低阈值或者高于高阈值时,就会产生中断,前提是我们开启了模拟看门狗中断,其中低阈值和高阈值由ADC_LTR和ADC_HTR设置。例如我们设置高阈值是2.5V,那么模拟电压超过2.5V的时候,就会产生模拟看门狗中断,反之低阈值也一样。

DMA请求

规则和注入通道转换结束后,除了产生中断外,还可以产生DMA请求,把转换好的数据直接存储在内存里面。要注意的是只有ADC1和ADC3可以产生DMA请求。

参考和引用:STM32F4xx参考手册、STM32F4xx规格书、野火开源项目、库帮助文档

目录
相关文章
|
2月前
|
C++ 芯片 编译器
STM32F103标准外设库—— 新建工程与库函数(四)
STM32F103标准外设库—— 新建工程与库函数(四)
44 0
STM32F103标准外设库—— 新建工程与库函数(四)
|
2月前
|
传感器 芯片 内存技术
STM32F103标准外设库——认识STM32(一)
STM32F103标准外设库——认识STM32(一)
109 0
STM32F103标准外设库——认识STM32(一)
|
2月前
|
芯片 存储 C语言
STM32F103标准外设库——固件库 (三)
STM32F103标准外设库——固件库 (三)
59 0
STM32F103标准外设库——固件库 (三)
STM32CubeIDE移植ARM DSP库
STM32CubeIDE移植ARM DSP库
|
3月前
|
缓存 编译器 程序员
嵌入式开发环境Vscode开发STM32单片机程序
嵌入式开发环境Vscode开发STM32单片机程序
55 0
|
3月前
|
传感器 存储 编解码
【STM32基础 CubeMX】ADC的基础使用
【STM32基础 CubeMX】ADC的基础使用
|
4月前
|
数据采集 存储 传感器
STM32 ADC基础知识讲解
STM32 ADC基础知识讲解
64 0
|
6月前
|
存储 传感器
STM32速成笔记(七)—ADC
本文介绍了ADC的概念,用途,针对STM32的ADC做出了详细介绍,给出了配置步骤,配置程序。通过一个简单的小项目展示了ADC的配置和使用方法。此外,还针对如何利用定时器触发AD转换,如何采集交流信号,如何计算交流信号有效值进行了介绍,并给出了程序设计。
95 0
STM32速成笔记(七)—ADC
|
6月前
|
芯片
STM32速成笔记(四)—中断
本文介绍了中断的概念,中断的相关名词,STM32外部中断配置方法以及使用中断的注意事项。给出了外部中断点亮LED程序设计思路和关键代码。
164 0
STM32速成笔记(四)—中断