STM32多路ADC+DMA+串口发送程序.docx_第1页
STM32多路ADC+DMA+串口发送程序.docx_第2页
STM32多路ADC+DMA+串口发送程序.docx_第3页
STM32多路ADC+DMA+串口发送程序.docx_第4页
STM32多路ADC+DMA+串口发送程序.docx_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

主函数#include stm32f10x.h#include #include ADC.h#include DMA.h#include UASRT.hu16 *dyz;/建立指针u16 sum16;/printf重定向函数/int fputc(int ch, FILE*f)USART_SendData(USART1, (uint8_t) ch);while (USART_GetFlagStatus(USART1, USART_FLAG_TC) = RESET);return (ch);/延时函数/void delay_ms(u16 time) u16 i=0; while(time-) i=12000; /? while(i-) ; /主函数/int main(void)int i,m,n;SystemInit();adc_ini();USART_int();ADC_SoftwareStartConvCmd(ADC1, ENABLE);/ADC1软启动使能dma();while(1)/求10次采集的平均值 for(m=0;m10;m+)dyz=ADC_ConvertedValue;/给指针赋值while(!DMA_GetFlagStatus(DMA1_FLAG_TC1);/等待DAM传输完毕for(i=0;i16;i+)sumi+=*dyz; dyz+;DMA_ClearFlag(DMA1_FLAG_TC1);/清楚DMA发送完成标志位for(n=0;nDR);/定义内存基地址DMA_InitStructure.DMA_MemoryBaseAddr = (u32)ADC_ConvertedValue;/设置外设作为传输的源DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC;/指定DMA缓存大小DMA_InitStructure.DMA_BufferSize = 16;/设置外设寄存器地址不递增?DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;/设置内存寄存器地址递增DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;/设置外设数据宽度为16位DMA_InitStructure.DMA_PeripheralDataSize =DMA_PeripheralDataSize_HalfWord;/设置内存数据的宽度为16位DMA_InitStructure.DMA_MemoryDataSize =DMA_MemoryDataSize_HalfWord;/设置DMA工作在循环模式DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;/设置通道为最高优先级DMA_InitStructure.DMA_Priority = DMA_Priority_VeryHigh ;/设置通道为外设到内存DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;DMA_Init(DMA1_Channel1, &DMA_InitStructure);/使能DMA通道1DMA_Cmd(DMA1_Channel1, ENABLE);#endif串口.H文件#ifndef _USART_H_#define _USART_H_void USART_int(void) USART_InitTypeDef USART_InitStructure;GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_USART1 ,ENABLE);/使能GPIOA和USART1时钟USART_DeInit(USART1);/填入缺省值给USART1USART_InitStructure.USART_BaudRate = 9600;/波特率为9600 USART_InitStructure.USART_WordLength = USART_WordLength_8b;/数据位为8位USART_InitStructure.USART_StopBits = USART_StopBits_1;/1位停止位USART_InitStructure.USART_Parity = USART_Parity_No;/无奇偶校验USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None;/无控制流USART_InitStructure.USART_Mode = USART_Mode_Tx | USART_Mode_Rx;/接收和发送模式USART_Init(USART1, &USART_InitStructure);/载入设置值GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;/ GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;/ GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;/GPIO

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论