找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2908|回复: 0
收起左侧

STM32双通道ADC采集DMA转换源程序

[复制链接]
ID:127367 发表于 2016-6-20 10:54 | 显示全部楼层 |阅读模式
本程序用的是STM32F103RC芯片,ADC用DMA方式获取ADC数据。

本实验将实现如下功能:利用STM32的ADC1通道0来采样外部电压值,并在TFTLCD模块上显示出来。实现一个简单的电压表的功能。

本实验可以SWD下载仿真.


  1. //////////////////////////////////////////////////////////////////////////////////
  2. #include "dma.h"         
  3. u16 DMA1_MEM_LEN;//保存DMA每次数据传送的长度                     
  4. //DMA1的各通道配置
  5. //这里的传输形式是固定的,这点要根据不同的情况来修改
  6. //从存储器->外设模式/8位数据宽度/存储器增量模式
  7. //DMA_CHx:DMA通道CHx
  8. //cpar:外设地址
  9. //cmar:存储器地址
  10. //cndtr:数据传输量  
  11. void MYDMA_Config(DMA_Channel_TypeDef*DMA_CHx,u32 cpar,u32 cmar,u16 cndtr)
  12. {
  13.         u32 DR_Base;  //做缓冲用,不知道为什么.非要不可
  14.         RCC->AHBENR|=1<<0;//开启DMA1时钟
  15.         __nop();                    //等待 DMA1 时钟稳定
  16.     __nop();                    //经测试最少 2 个 nop
  17.     __nop();
  18.         DR_Base=cpar;
  19.         DMA_CHx->CPAR=DR_Base;          //DMA1 外设地址
  20.         DMA_CHx->CMAR=(u32)cmar; //DMA1,存储器地址
  21.         DMA1_MEM_LEN=cndtr;      //保存DMA传输数据量
  22.         DMA_CHx->CNDTR=cndtr;    //DMA1,传输数据量
  23.         DMA_CHx->CCR=0X00000000;//复位
  24.         DMA_CHx->CCR|=0<<4;       //从外设读
  25.         DMA_CHx->CCR|=1<<5;       //循环模式
  26.         DMA_CHx->CCR|=0<<6;  //外设地址非增量模式
  27.         DMA_CHx->CCR|=1<<7;  //存储器增量模式
  28.         DMA_CHx->CCR|=1<<8;  //外设数据宽度为16位
  29.         DMA_CHx->CCR|=1<<10; //存储器数据宽度16位
  30.         DMA_CHx->CCR|=2<<12; //中等优先级  //最高优先级
  31.         DMA_CHx->CCR|0<<14; //非存储器到存储器模式                          
  32. }
  33. //开启一次DMA传输
  34. void MYDMA_Enable(DMA_Channel_TypeDef*DMA_CHx)
  35. {
  36.         DMA_CHx->CCR&=~(1<<0);       //关闭DMA传输
  37.         DMA_CHx->CNDTR=DMA1_MEM_LEN; //DMA1,传输数据量
  38.         DMA_CHx->CCR|=1<<0;          //开启DMA传输
  39. }         

复制代码


0.png

双通道ADC采集DMA转换.rar

1.19 MB, 下载次数: 30, 下载积分: 黑币 -5

代码

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表