#include"ADC.h"#include"DMA.h"#include"UASRT.h"u16*dyz;//建立指针u16sum[16];//print"> #include"ADC.h"#include"DMA.h"#include"UASRT.h"u16*dyz;//建立指针u16sum[16];//print" />
STM32多路ADC+DMA+串口发送程序.doc

STM32多路ADC+DMA+串口发送程序.doc

ID:55955559

大小:27.50 KB

页数:6页

时间:2020-06-18

STM32多路ADC+DMA+串口发送程序.doc_第1页
STM32多路ADC+DMA+串口发送程序.doc_第2页
STM32多路ADC+DMA+串口发送程序.doc_第3页
STM32多路ADC+DMA+串口发送程序.doc_第4页
STM32多路ADC+DMA+串口发送程序.doc_第5页
资源描述:

《STM32多路ADC+DMA+串口发送程序.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、主函数#include"stm32f10x.h"#include#include"ADC.h"#include"DMA.h"#include"UASRT.h"u16*dyz;//建立指针u16sum[16];//printf重定向函数//intfputc(intch,FILE*f){USART_SendData(USART1,(uint8_t)ch);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)==RESET);return(ch);}//延时函数//voiddelay_ms

2、(u16time){u16i=0;while(time--){i=12000;//????while(i--);}}//主函数//intmain(void){inti,m,n;SystemInit();adc_ini();USART_int();ADC_SoftwareStartConvCmd(ADC1,ENABLE);//ADC1软启动使能dma();while(1){//求10次采集的平均值for(m=0;m<10;m++){dyz=ADC_ConvertedValue;//给指针赋值while(!DMA_GetFlagStatus(DM

3、A1_FLAG_TC1));//等待DAM传输完毕for(i=0;i<16;i++){sum[i]+=*dyz;dyz++;DMA_ClearFlag(DMA1_FLAG_TC1);//清楚DMA发送完成标志位}}for(n=0;n<16;n++){sum[n]/=10;//计算ADC对应通道的平均值printf("%d=%d",n,sum[n]);//通过串口输出delay_ms(200);}}}ADC的.h文件#ifndef__ADC_H_#define__ADC_H_voidadc_ini(void){ADC_InitTypeDef

4、ADC_InitStructure;GPIO_InitTypeDefGPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1,ENABLE);//开启ADC1时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA

5、RCC_APB2Periph_GPIOB

6、RCC_APB2Periph_GPIOC,ENABLE);//使能GPIO的时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);//开启

7、AFIO时钟//配置模拟输入引脚GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0

8、GPIO_Pin_1

9、GPIO_Pin_2

10、GPIO_Pin_3

11、GPIO_Pin_4

12、GPIO_Pin_5

13、GPIO_Pin_6

14、GPIO_Pin_7;//选择第0脚GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AIN;//模拟输入模式GPIO_Init(GPIOA,&GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0

15、GPIO_Pin

16、_1;//选择第0脚GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AIN;//模拟输入模式GPIO_Init(GPIOB,&GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0

17、GPIO_Pin_1

18、GPIO_Pin_2

19、GPIO_Pin_3

20、GPIO_Pin_4

21、GPIO_Pin_5;//选择第0脚GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AIN;//模拟输入模式GPIO_Init(GPIOC,&GPIO_In

22、itStructure);//配置ADCRCC_ADCCLKConfig(RCC_PCLK2_Div6);//ADC时钟6分频ADC_DeInit(ADC1);//ADC1填入缺省值ADC_InitStructure.ADC_Mode=ADC_Mode_Independent;//ADC工作在独立模式ADC_InitStructure.ADC_ScanConvMode=ENABLE;//ADC工作在多通道模式ADC_InitStructure.ADC_ContinuousConvMode=ENABLE;//ADC工作在连续模式ADC_Init

23、Structure.ADC_ExternalTrigConv=ADC_ExternalTrigConv_None;//转换由软件启动ADC_InitStructur

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。