一种基于stm32的多通道ADC和DMA的设置问题详解.doc
《一种基于stm32的多通道ADC和DMA的设置问题详解.doc》由会员分享,可在线阅读,更多相关《一种基于stm32的多通道ADC和DMA的设置问题详解.doc(3页珍藏版)》请在三一文库上搜索。
1、一种基于stm32的多通道ADC和DMA的设置问题详解一、多通道ADC和DMA的配置问题:刚开始不知道怎么去配置,到处找资料发现很多不是很适用。很盲目的找了很久的资料,后来发现官方的固件库里面有很详细的资料。稍微改了一下官方的demo一下就编译成功了。这个例子的启示是:别忙着去网上找现成的例子,启示固件库里面的例程很给力了。程序需求是开通三个ADC通道分别采集3V 的基准电压、控制反馈温度和环境温度。因为用示波器测试时发现TED控制PWM的开关的高频噪声耦合到控制地中来了,所以会有一些高频尖刺。我的解决办法是每组数据通过DMA采集100个点,除去最大的10个数和最小的10数然后取平均值。配置代
2、码如下:uint16_t Rec_buff1003;void DMA_ConfiguraTIon(void)DMA_InitTypeDef DMA_InitStructure;/* DMA1 channel1 configuraTIon -*/RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);DMA_DeInit(DMA1_Channel1); /DMA重新设置为缺省值DMA_InitStructure.DMA_PeripheralBaseAddr = ADC1_DR_Address;/DMA?ADC?DMA_InitStructure.DMA
3、_MemoryBaseAddr = (uint32_t)Rec_buff; /DMA数据填充的地址DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC;/SRC模式,外设向内存中搬运DMA_InitStructure.DMA_BufferSize = 300; /接收容量DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable; /外设地址是否增长,这里没有开启DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;/接收地址
4、储存地址是否自增长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_High; /DMA优先级高DMA_Init
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 一种 基于 stm32 通道 ADC DMA 设置 问题 详解
链接地址:https://www.31doc.com/p-3363890.html