找回密码
 立即注册

QQ登录

只需一步,快速开始

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

STM32四通道ADC+DMA传输源码

[复制链接]
ID:288575 发表于 2018-5-27 17:30 | 显示全部楼层 |阅读模式
由于STM32F1的DMA1中只有ADC1,所以利用ADC1的扫描模式进行开4个通道进行DMA的ADC采值。

单片机源程序如下:
  1. #include "delay.h"
  2. #include "sys.h"
  3. #include "usart.h"
  4. #include "lcd.h"
  5. #include "adc.h"
  6. #include "dma.h"

  7. #define ADC1_DR_Address    ((uint32_t)0x4001244C)
  8.   u16 AD_Value[6];   
  9.   float volta[6];
  10.   u8 i;
  11.   int main()
  12.   {
  13.           SystemInit();
  14.           delay_init(72);             //延时初始化
  15.         NVIC_Configuration();
  16.         uart_init(9600);
  17.         DMA_Config(DMA1_Channel1,(u32)ADC1_DR_Address,(u32)&AD_Value,6);//cndtr对应所开信道个数
  18.           Adc_Init();
  19.           DMA_Cmd(DMA1_Channel1, ENABLE);      //启动DMA通道
  20.     ADC_SoftwareStartConvCmd(ADC1, ENABLE);          //软件启动AD转换
  21.                    while(1)
  22.    {
  23.                         for(i=0;i<6;i++)                        //循环6次转换AD值
  24.                         {
  25.                         volta[i] =(float) AD_Value[i]/4095*3.3;
  26.                         }
  27.                       printf("AD1=%d\n",AD_Value[0]);        printf("\r\n volta1 = %f V \r\n",volta[0]);
  28.                         printf("AD2=%d\n",AD_Value[1]);        printf("\r\n volta2 = %f V \r\n",volta[1]);
  29.                         printf("AD3=%d\n",AD_Value[2]);        printf("\r\n volta3 = %f V \r\n",volta[2]);
  30.                         printf("AD4=%d\n",AD_Value[3]);        printf("\r\n volta4 = %f V \r\n",volta[3]);
  31.                         printf("AD5=%d\n",AD_Value[4]);        printf("\r\n volta5 = %f V \r\n",volta[4]);
  32.                         printf("AD6=%d\n",AD_Value[5]);        printf("\r\n volta6 = %f V \r\n",volta[5]);
  33.                           delay_ms(500);
  34.    }
  35.   }

复制代码

所有资料51hei提供下载:
实验24 四通道ADC (DMA传输).zip (353.93 KB, 下载次数: 38)
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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