ADC(简易的DMA传输)的认识

首先看到是ADC的特性

1、ADC的12位分辨率。不能直接测量负电压,然后是最小量程化单位是LSB=Vref+/212

2、单次和转换模式的使用

3、 从通道0到通道n的连续扫描模式00

4、自校准。

5、数据的内部自对齐。

6、触发方式。(根据功能描叙图。)

如下图所示

看到这张图可以看到ADC的工作方式

可以看到所有的器件都是围绕着模数转换部分(ADC模块)展开的。可以看到左边的有些参考电压,而有2.4<=Vref+<=3.6

而下面的GPIO端口和温度传感器就是ADC的输入。这些输入到ADC模块需要有触发才能进行工作,所以请看下面就是有的就是定时器触发,GPIO(A~G)_EXIT_11和GPIO(A~G)_EXIT_15都是外部触发,也可以使用软件触发,今天我们就使用规则通道的软件触发实现循环扫描。

当转换数据完成后进入到规则通道数据寄存器,而寄存器是有32位和16位的,所有这个寄存器是选择16位的,这时就会让选择对齐当时,有左对齐和右对齐。

当然还有就是配置看门狗,当采集的电压值大于阀值,触发看门狗中断。

下面看下具体的实现规则通道的循环扫描通过串口发送到超级终端上。

首先就是配置ADC-GPIO

static void ADC1_GPIO_Config(void)
{
GPIO_InitTypeDef GPIO_InitStructure;

/* Enable DMA clock */
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);

/* Enable ADC1 and GPIOC clock */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1 | RCC_APB2Periph_GPIOC, ENABLE);

/* Configure PC.01 as analog input */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
GPIO_Init(GPIOC, &GPIO_InitStructure); // PC1,输入时不用设置速率。
}

/* ADC1 configuration */
ADC_InitStructure.ADC_Mode = ADC_Mode_Independent; //独立ADC模式
ADC_InitStructure.ADC_ScanConvMode = DISABLE ; //禁止扫描通道模式,适用于多通道模式。
ADC_InitStructure.ADC_ContinuousConvMode = ENABLE; //启动连续扫描模式。
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None; //不使用外部触发方式
ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right; //使用右对齐方式存放。
ADC_InitStructure.ADC_NbrOfChannel = 1; //要转换的通道数目
ADC_Init(ADC1, &ADC_InitStructure);

/*8分频,即9MHz*/
RCC_ADCCLKConfig(RCC_PCLK2_Div8);
/*规则通道的配置ADC1的通道1,采样周期为55.5个周期,序列号为1 */
ADC_RegularChannelConfig(ADC1, ADC_Channel_11, 1, ADC_SampleTime_55Cycles5);

/* Enable ADC1 DMA */
ADC_DMACmd(ADC1, ENABLE);

/* Enable ADC1 */
ADC_Cmd(ADC1, ENABLE);

/*复位校准寄存器*/
ADC_ResetCalibration(ADC1);
/*等待复位校准寄存器完成工作 */
while(ADC_GetResetCalibrationStatus(ADC1));

/* ADC校准寄存器*/
ADC_StartCalibration(ADC1);
/* 等待完成工作*/
while(ADC_GetCalibrationStatus(ADC1));

/* 启动软件触发ADC转化*/
ADC_SoftwareStartConvCmd(ADC1, ENABLE);

ADC(简易的DMA传输)的认识的更多相关文章

  1. (三)stm32之串口通信DMA传输完成中断

    一.DMA功能简介 首先唠叨一下DMA的基本概念,DMA的出现大大减轻了CPU的工作量.在硬件系统中,主要由CPU(内核).外设.内存(SRAM).总线等结构组成,数据经常要在内存和外设之间,外设和外 ...

  2. stm32的DMA传输一半中断

    这里本想做一个录音程序 硬件很简单: MIC(麦克风)放大滤波电路---->stm32的ADC----->DMA通道----->一个数组缓存------->通过FATFS的  ...

  3. 【STM32H7教程】第46章 STM32H7的ADC应用之DMA方式多通道采样

    完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第46章       STM32H7的ADC应用之DMA方式多 ...

  4. GD32F330 | ADC实例 基于DMA方式

    GD32F330 | ADC实例 基于DMA方式 简单记录一下 ADC多通道转换 DMA搬运 的使用,以 GD32F330G8U6 为例: 一.ADC 基础知识 12位ADC是一种采用逐次逼近方式的模 ...

  5. 案例 stm32单片机,adc的双通道+dma 内部温度

    可以这样理解 先配置adc :有几个通道就配置几个通道. 然后配置dma,dma是针对adc的,而不是针对通道的. 一开始我以为一个adc通道对应一个dma通道.(这里是错的,其实是我想复杂了) 一个 ...

  6. C# Socket 简易的图片传输

    关于网络的数据传输我就是个小白,所以今天学习一下简易的Socket图片传输. 客户端和服务器的连接咱们上次已经学过了,咱们先从简易的文件传输入手.下面开始代码分析了. Server.cs using ...

  7. STM32的USART DMA传输(转)

    源:STM32的USART DMA传输 问题描述: 我有一个需求,AD采得一定数目的数据之后,由串口DMA发出,由于AD使用双缓冲,所以每次开始DMA的时候都需要重新设置开始的内存地址以及传输的数目( ...

  8. 基于设备树的TQ2440 DMA学习(2)—— 简单的DMA传输

    作者 彭东林 pengdonglin137@163.com   平台 TQ2440 Linux-4.9   概述 上一篇博客分析了DMA控制器的寄存器,循序渐进,下面我们直接操作DMA控制器的寄存器实 ...

  9. .net mvc 站点自带简易SSL加密传输 Word报告自动生成(例如 导出数据库结构) 微信小程序:动画(Animation) SignalR 设计理念(一) ASP.NET -- WebForm -- ViewState ASP.NET -- 一般处理程序ashx 常用到的一些js方法,记录一下 CryptoJS与C#AES加解密互转

    .net mvc 站点自带简易SSL加密传输   因项目需要,传输数据需要加密,因此有了一些经验,现简易抽出来分享! 请求:前端cryptojs用rsa/aes 或 rsa/des加密,后端.net ...

随机推荐

  1. SQLZOO 习题

    https://sqlzoo.net 8. 美國.印度和中國(USA, India, China)是人口又大,同時面積又大的國家.排除這些國家. 顯示以人口或面積為大國的國家,但不能同時兩者.顯示國家 ...

  2. linux详解 rsync 服务和配置文件

    首先要选择服务器启动方式: l      对于负荷较重的 rsync 服务器应该选择独立运行方式 l      对于负荷较轻的 rsync 服务器应该选择 xinetd 运行方式 l      创建配 ...

  3. 网络拓扑_配置hybrid端口

    目的:实现不同VLAN间的PC不可互访, 但不同VLAN的PC均可以访问服务器. 例: VLAN5与VLAN10的PC不可以互通,但它们均可与服务器VLAN50互通. 拓扑图:

  4. Memcache--02 源码安装nginx,php

    目录 一.session共享问题介绍 二.环境准备 一.session共享问题介绍 session主要用于服务端存储用户会话信息,cookie用于浏览器存储用户会话信息. 单系统服务session都存 ...

  5. windows重装系统之前与之后进行的操作

    1.原系统的备份 避免重装遇到故障无法恢复,给自己留一条后路. 重装系统之前首先进行一次系统备份,我使用的备份软件是dism++,这个软件还可以完成其他的诸如空间回收.系统优化等操作: 软件地址:ht ...

  6. Linux基础之输入输出

    第十五章 输入输出 一.重定向概述 1.1.什么是重定向? 将原本要输出到屏幕的数据信息,重新定向到指定的文件中. 比如:每天凌晨定时备份数据,希望将备份数据的结果保存到某个文件中.这样第二天通过查看 ...

  7. 二、冯式结构与哈佛结构及ARM处理器状态和处理器模式

    2.1 冯式结构与哈佛结构 2.1.1 两者的区别 如果是独立的存储架构和信号通道那就是哈佛结构,否则就是冯式结构 结构与是否统一编址没有关系,也与 CPU 没有关系,与计算机的整体设计有关 CACH ...

  8. alert(1) to win 16

  9. Win7 64位系统 注册 ocx控件

    32位系统注册ocx就不谈了.网上一搜一大把.下面说下win7 64位 旗舰版下如果注册ocx控件    1.首先复制 XXXX.OCX文件到“C:\Windows\SysWOW64”目录. (XXX ...

  10. SQL语句中 (+) 含义

    (+) 表示外连接.条件关联时,一般只列出表中满足连接条件的数据.如果条件的一边出现(+),则可列出该表中在条件另一侧的数据为空的那些记录.比如两个表:员工表和工资表.员工表中有总经理.A.B.C四条 ...