STM8L探索套件学习笔记-ADC_DMA(十五)
- 格式:docx
- 大小:9.00 KB
- 文档页数:1
STM32多通道ADC采集详解(DMA模式和非DMA模式)在非DMA模式下,ADC采集的数据是通过CPU直接读取的,采集效率相对较低,但是编程相对简单。
首先,需要初始化ADC模块的工作模式(单通道、多通道等)和采样时间。
然后,使能ADC模块,并配置所需的通道和采样时间。
接着,设置采样序列,指定要采集的通道和相应的排列顺序。
在采集数据时,首先需要设置ADC转换模式和采样时间,然后开始转换,并等待转换完成。
转换完成后,通过读取ADC_DR寄存器可以获取转换结果。
如果需要采集多个通道的数据,可以通过设置ADCSQR中的SQx位来启动下一次转换。
在DMA模式下,ADC采集的数据是通过DMA控制器传输到指定的内存区域,采集效率较高,适合数据量较大的应用场景。
与非DMA模式相比,DMA模式下的配置需要额外设置DMA控制器的工作模式(单次传输、循环传输等)和传输数据的目的地地址。
在采集数据前,需要设置DMA传输的目的地地址,并使能DMA传输。
在开启ADC转换后,DMA控制器会根据设置的目的地地址来自动传输数据,无需CPU干预。
采集完成后,CPU可以通过检查DMA传输完成标志位来判断数据是否已传输完毕。
总结:
使用非DMA模式的ADC采集相对简单而容易上手,适用于数据量较小且对实时性要求不高的应用场景。
DMA模式下的ADC采集效率更高,适用于数据量较大且对实时性要求较高的应用场景。
无论是DMA模式还是非DMA模式,都需要根据具体的应用需求来选择合适的模式。
在使用DMA模式时,还需要注意合理设置DMA传输的目的地地址和传输模式,以充分发挥DMA的优势。
STM8 实战篇
一、参考文档《STM8单片机入门V3.0》安装软件。
建议安装在C盘(默认路径)主要看软件安装和cosmic和STVD的结合使用
二、自己建立C语言工程。
(不使用库文件)
建议先新建文件夹
添加头文件和文件路径
路径在
D:\Program Files\STMicroelectronics\st_toolset\include
Stm8s105k.h中定义了特殊寄存器。
下面开始编写程序
硬件中PE5口有一个LED。
做一个闪烁灯。
在线
使用标准库:
和上面一样建立普通的工程。
从其他以库建立的工程中复制以上文件
其中main 和stm8_interrupt_vector 为替换
添加文件:
继续添加使用模块对应的文件
根据主程序使用的配置来添加响应的东西。
可以建立如下的结构
添加文件为
编译后成功。
当然附件了又demo的程序,大家可以拷贝其中的文件,还可以直接在此文件上写程序。
STM32F103单片机学习笔记(5):DMA
外部中断触发时,(DMA)向串口发送一次数据。
DMA是一个好东西,它不需要占用(CPU)的资源,只需要配置好之后初始化使能就可以将数据从一个地址空间快速复制到另一个地址空间,当DMA传输完成的时候产生一个中断。
(STM32)有2个DMA(控制器),一共12个通道,每个通道专门用来管理来自于一个或多个外设对(寄存器)访问的请求,参考STM32参考手册。
从外设((TI)Mx、(ADC)、SPIx、I(IC)、USARTx)产生7个请求,通过逻辑或者输入到DMA控制器,这意味着同时只能有一个请求有效,DMA1请求一览表。
DMA2请求一览表。
下面是DMA的库DMA(时钟)
同样,和之前一样,流程图。
这里具体的代码我就不一一再细说了,只有DAM的初始化和设置我们没有写过,下面是DMA的初始化和设置。
串口DMA的设置。
DMA发送使能,在外部中断中调用这个函数。
好了,今天就到这里了。
单片机ADC应用笔记AVR单片机模数转换的ADC实验ATmega16内容来源:本站整理发布时间:[2010-11-07]查看次数:7226.2 模数转换的ADC实验6.2.1、实例功能AVR的模数转换器ADC具有下列特点:1.10位精度;2.0.5LSB积分非线形误差3.±2LSB的绝对精度;4.13μs~260μs的转换时间;5.在最大精度下可达到每秒15kSPS的采样速率;6.8路可选的单端输入通道;7.7路差分输入通道;8.2路差分输入通道带有可选的10×和200×增益;9.ADC转换结果的读取可设置为左端对齐(LEFTADJUSTMENT);10.ADC的电压输入范围0~Vcc;11.可选择的内部2.56V的ADC参考电压源;12.自由连续转换模式和单次转换模式;13.ADC自动转换触发模式选择;14.ADC转换完成中断;15.休眠模式下的噪声抑制器(NOISE CANCELER)。
在本实例中,我们将编写程序实现将模数转换后获得的电压值通过单片机的串口发送到计算机,然后通过计算机上的串口助手显示测量的电压值。
本实例共有3个功能模块,分别描述如下:● 单片机系统:使用单片机的串口实现将模数转换后获得的电压值通过串口发送到计算机。
● 外围电路:RS232电平转换电路,DB9串行接口插座,模拟电压输入采集电路。
● 软件程序:进一步熟悉单片机的串行通信,并掌握单片机的模数转换的方法。
6.2.2、器件和原理关于串行接口的原理已接单片机与计算机的串口的连接在上一实例中进行了描述,在本实例中不再重复。
本实例只介绍ATmega16单片机如何通过内置的模数转换模块采集外界输入的模拟电压。
1、ATmega16单片机的模数转换器ADC介绍由于单片机只能处理数字信号,所以外部的模拟信号量需要转变成数字量才能进一步的由单片机进行处理。
ATmega16内部集成有一个10位逐次比较(successive approximation)ADC电路。
STM8 选型意法半导体的8位微控制器平台基于高性能8位内核和先进外设集。
该平台采用意法半导体专有的130 nm 嵌入式非易失性存储器技术制造而成。
STM8的增强型堆栈指针操作、高级寻址模式和新指令让用户能够实现快速、安全的开发。
STM8平台支持4个产品系列:∙STM8S - 主流MCU∙STM8L - 超低功耗MCU∙STM8AF和STM8AL - 汽车用MCUSTM8S选型意法半导体的STM8S系列主流8位微控制器适于工业、消费类和计算机市场的多种应用,特别是要实现大批量的情况。
基于STM8专有内核,STM8S系列采用ST的130纳米工艺技术和先进内核架构,主频达到24 MHz,处理能力高达20MIPS。
嵌入式EEPROM、RC振荡器和全套标准外设为设计者提供了稳定且可靠的解决方案。
相关工具链,从经济型探索套件到更复杂的评估套件和第三方工具,为利用STM8S微控制器进行开发提供了极大方便。
STM8S系列包括四个产品线,具有不同特性,但是保持了全面兼容性和可升级性,从而减少了未来产品设计变更。
∙STM8S003/005/007超值型是入门级产品,具有基本功能。
∙STM8S103/105基本型提供了更多特性和封装选项。
∙STM8S20增强型配有全套外设,满足中、高端应用的性能要求。
∙STM8S专用型提供了更多模拟特性和专用固件解决方案。
STM8S903STM8S103/105基本型属于标准多功能8位微控制器。
作为低成本超值型产品升级的第一步,STM8S103/105基本型提供了更多的封装、存储容量、特性和工厂编程服务选项。
它基于专有16 MHz内核,具有全套定时器、接口(UART、SPI、I2C)、10位ADC、内部和外部时钟控制系统、看门狗、自动唤醒单元和集成式单线调试模块。
该产品系列具有高达32 KB的Flash程序存储器、高达1 KB的数据EEPROM和高达2 KB的RAM。
它提供三种封装选项:32、44和48引脚封装。
UM0970用户手册STM8L-DISCOVERY 简介STM8L-DISCOVERY可以帮助用户探索发现STM8L的超低功耗特性,也可以开发相关的应用。
STM8L-DISCOVERY是基于STM8L152C6T6芯片做的开发板,包括一个嵌入的ST-LINK调试工具接口(ST-LINK调试器/编程器集成在同一块板子上,留有SWIM调试接口)、LCD(24段,4个COM 端)和按键。
图 1STM8L-DISCOVERY板本文仅供参考,请以ST官方文档为准/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/USER_MANUAL/CD00278045.pdf目 录第1章 快速入门 (4)1.1 开始 (4)1.2 系统要求 (4)1.3 开发工具 (5)1.4 演示软件 (5)1.5 订单编码 (5)第2章 特点 (6)第3章 硬件和布局 (7)3.1 STM8L152C6T6微控制器 (11)3.2 嵌入的ST-LINK (13)3.2.1 使用ST-LINK编程/调试板上STM8L (14)3.2.2 使用ST-LINK编程/调试外部STM8L应用 (14)3.3 供电和电源选择 (15)3.4 LED灯 (15)3.5 按键 (16)3.6 内建的IDD测量电路 (16)3.6.1 运行模式 (17)3.6.2 低功耗模式 (17)3.6.3 低功耗模式IDD测量原理 (17)3.6.4 Ibias电流测量步骤 (18)3.7 锡桥 (18)3.8 LCD(24段,4个COM) (19)第4章 扩展连接 (22)第5章 机械制图 (26)第6章 电气原理图 (28)2 - 王志杰(QQ:411238869; MSN:iewangzhijie@)Design a Solution for Future第1章快速入门第1章 快速入门STM8L-DISCOVERY是一个低成本的、易于使用的开发工具,可快速评估和开始一个STM8L超低功耗微控制器的开发。
ADC介绍12位ADC是一种逐次逼近型模拟数字转换器。
它有多达18个通道,可测量16个外部和2个内部信号源。
各通道的A/D转换可以单次、连续、扫描或间断模式执行。
ADC的结果可以左对齐或右对齐方式存储在16位数据寄存器中。
ADC的输入时钟不得超过14MHz,它是由PCLK2经分频产生。
ADC转换时间的计算ADC 时钟频率越高,转换速度也就越快,但ADC 时钟有上限值,不能超过14MHzADC使用若干个ADC_CLK周期对输入电压采样,采样周期数目可以通过ADC_SMPR1和ADC_SMPR2寄存器中的SMP[2:0]位更改。
每个通道可以分别用不同的时间采样。
总转换时间如下计算:把PCLK2 配置为56MHz时,最短采样时间为1us把PCLK2 配置为72MHz时,最短采样时间为1.17us因为ADC时钟上线不能超过14MHz,72MHz时最小分频要6分频,此时ADC时钟频率为12MHz,而最小采样时间为1.5T CONV = 1.5 + 12.5 = 14周期T=14*1/12MHz=1.17usADC的GPIO的配置GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;GPIO_Init(GPIOC, &GPIO_InitStructure);ADC的配置ADC_InitTypeDef ADC_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1 , ENABLE);ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;//ADC1和ADC2工作在独立模式ADC_InitStructure.ADC_ScanConvMode = DISABLE;//规定了模数转换工作在扫描模式(多通道)模式ADC_ScanConvMode 规定了模数转换工作在扫描模式(多通道)还是单次(单通道)模式。
例程十一 ADC及其应用在计算机过程控制的数据采集等系统中,经常要对一些过程参数进行测量和控制,这些参数往往是连续变化的物理量,如温度,压力,流量和速度等。
这里所指的连续变化即数值是随着时间连续可变的,通常称这些物理量为模拟量,然而计算机本身所能识别和处理的都是数字量。
这些模拟量在进入计算机之前必须转换成二进制数码表示的数字信号。
能够把模拟量变成数字量的器件称之为模数转换器。
15.1 STM8S207ADC模块概述(注STM8S207系列高性能产品包括了一个10位连续渐进式模数转换器ADC2,意STM8S2XX都没有ADC1)提供了多达16个多功能的输入通道。
主要性能有: 转换时间为14个时钟周期,带有参考电压引脚,可设置为单次或联系的转换模式,可设置转换结束产生中断。
15.2 ATD模块接口组成和特点STM8S207单片机内置的ADC模块如下图所示:ADC模块可以通过ADC_CR1寄存器来开启或者关闭。
然后ADC的时钟是有f_master时钟经过预分频后提供的。
STM8S207高达16个输入通道,支持多种转换模式15.3 ADC模块寄存器设置STM8S207的ADC模块共有8个寄存器。
分为4个设置寄存器,2个数据寄存器和2个施密特触发禁止寄存器。
15.3.1 ADC控制/状态寄存器ADC_CSREOC:转换结束。
此位在AD转换结束后由硬件置位。
由软件写“0”来清零 0:转换未结束1:转换结束AWD:因为STM8S207没有ADC1,所以此位无效EOCIE:转换结束EOC的中断使能0:禁止转换结束中断1:使能转换结束中断AWDIE:在STM8S207中无效位CH:选择转换通道,分别选择0到15共16个通道15.3.2 ADC配置寄存器1 ADC_CR1SPSEL:预分频选择位000:f_adc = f_master/2001:f_adc = f_master/3010:f_adc = f_master/4011:f_adc = f_master/6100:f_adc = f_master/8101:f_adc = f_master/10110:f_adc = f_master/12111:f_adc = f_master/18CONT:连续转换0:单次转换模式1:连续转换模式ADON:AD转换开关0:禁止ADC转换,进入低功耗模式1:使能ADC并开始转换需要注意的是:如果此位是0时,并且写1到此位,那么将把ADC从低功耗模式下唤醒。