国庆也算是出去浪了几天,当然 回来也不能忘记学习。经过前些天的摸索与学习对STM32的ADC有了一个了解,下面是学习过程(个人学习观点,仅供参考,如有错误或改进之处还望指出,臣不甚感激)。
更为详细的讲解可以参考一下这位前辈的博客:https://blog.csdn.net/XUXUECHEN/article/details/40748595
初识ADC有一种茫然的状态同时又会觉得它的功能强大,在stm32中有3个ADC,每个ADC都有16个转换通道,由此可知它的强大。首先通过它的引脚功能图可以看出每个引脚所对应的ADC转换通道。这样在编写程序的时候就不会把通道搞错。
有了上述的了解之后呢,还要记住ADC所能检测的电压范围是0~3.3V,如果检测的电压值大于3.3V就会把ADC烧坏,还有就是ADC转换的时钟频率,在72M的主控CPU中它的转换频率不能大于14M也就是6分频否则检测的值会不准确。采样周期为1.5个时钟周期。stm32的ADC转换有两种通道,规则通道和注入通道,注入通道可以抢占式地打断规则通道的采样,执行注入通道采样后,再执行之前的规则通道采样,和中断类似。当然本次学习是基于规则转换的,库函数操作。有了以上的了解之后来看看ADC的库函数:
对于一些基本的库函数就不列出来了,具体参考stm32固件库使用手册。这里来讲一下几个重要的库函数,第一个就是ADC_Init()在这个函数里有以下参数
其中ADC_Mode又包含了10种模式
ADC_ExternalTrigConv 函数里有多种触发方式,一般常用软件触发。
这里要注意ADC转换的数据对齐方式,因为stm32的ADC是12位的,而它的数据寄
STM32之3路ADC同步转换
最新推荐文章于 2024-07-31 12:19:59 发布
本文介绍了STM32中3路ADC的同步转换,并探讨了ADC的配置,包括模式选择、触发方式、数据对齐以及采样时间。在实际应用中,由于多通道转换数据可能会被覆盖,因此采用DMA进行数据处理。文中提到了DMA初始化的关键参数,并解释了如何确定外设基地址和寄存器偏移地址。最后强调了程序逻辑清晰的重要性。
摘要由CSDN通过智能技术生成