全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
关于AD多通道采集的总结前几天小试了下,用STM32做了个万用表,采集电压电流电阻并液晶显示。期间遇到一个最大的问题应该就是,要开启多个AD通道,结合DMA传输,小结下下面是我对AD的配置,还有DMAvoidDMA_ADC_Config()/*DMAchannel1configuration-*/DMA_DeInit(DMA_Channel1);/复位DMA通道xDMA_InitStructure.DMA_PeripheralBaseAddr=ADC_DR_Address;/定义DMA通道外设基地址=ADC1_DR_Address源/AD采集到的数据存放的寄存器DMA_InitStructure.DMA_MemoryBaseAddr=(u32)ADC_RegularConvertedValueTab;/定义DMA通道存储器地址,内存中的数据目的DMA_InitStructure.DMA_DIR=DMA_DIR_PeripheralSRC;/指定外设为源地址DMA_InitStructure.DMA_BufferSize=4;/定义DMA缓冲区大小4,4路AD,最后采集到的数值放在4位数组中DMA_InitStructure.DMA_PeripheralInc=DMA_PeripheralInc_Disable;/当前外设寄存器地址不变DMA_InitStructure.DMA_MemoryInc=DMA_MemoryInc_Enable;/当前存储器地址递增DMA_InitStructure.DMA_PeripheralDataSize=DMA_PeripheralDataSize_HalfWord;/定义外设数据宽度16位DMA_InitStructure.DMA_MemoryDataSize=DMA_MemoryDataSize_HalfWord;/定义存储器数据宽度16位DMA_InitStructure.DMA_Mode=DMA_Mode_Circular;/DMA通道操作模式位环形缓冲模式DMA_InitStructure.DMA_Priority=DMA_Priority_High;/DMA通道优先级高DMA_InitStructure.DMA_M2M=DMA_M2M_Disable;/禁止DMA通道存储器到存储器传输DMA_Init(DMA_Channel1,&DMA_InitStructure);/初始化DMA通道1DMA_Cmd(DMA_Channel1,ENABLE);/使能DMA通道1voidADC1_config()/*ADC1configuration-*/ADC_InitStructure.ADC_Mode=ADC_Mode_Independent;/AD转换模式ADC_InitStructure.ADC_ScanConvMode=ENABLE;/使能扫描,多通道ADC_InitStructure.ADC_ContinuousConvMode=ENABLE;/连续转换ADC_InitStructure.ADC_ExternalTrigConv=ADC_ExternalTrigConv_None;/有软件控制转换ADC_InitStructure.ADC_DataAlign=ADC_DataAlign_Right;/数据右对齐ADC_InitStructure.ADC_NbrOfChannel=4;/转换通道为通道4,4个通道来回扫描ADC_Init(ADC1,&ADC_InitStructure);/*ADC1regularchannel14configuration*/ADC1选择信道14|15,采集次序1,采样时间55.5个周期ADC_RegularChannelConfig(ADC1,ADC_Channel_14,1,ADC_SampleTime_55Cycles5);/通道14,PC4扫面顺序1ADC_RegularChannelConfig(ADC1,ADC_Channel_15,2,ADC_SampleTime_55Cycles5);ADC_RegularChannelConfig(ADC1,ADC_Channel_6,3,ADC_SampleTime_55Cycles5);ADC_RegularChannelConfig(ADC1,ADC_Channel_4,4,ADC_SampleTime_55Cycles5);DMA其实开一个就够了,它可以定义缓冲区大小,然后配置成DMA_InitStructure.DMA_MemoryInc=DMA_MemoryInc_Enable;/当前存储器地址递增这样就可以传递多个数据,我是定义了一个数组vu16ADC_RegularConvertedValueTab4;AD采集到的值放在寄存器ADC_DR_Address(u32)0x4001244C)中,每次采集好后DMA把数据取到数组中,接下去配置AD的时候采用扫描模式ADC_InitStructure.ADC_ScanConvMode=ENABLE;/使能扫描,多通道多个通道在下面开启,并配置顺序ADC_RegularChannelConfig(ADC1,ADC_Channel_14,1,ADC_SampleTime_55Cycles5);/通道14,PC4扫面顺序1ADC_RegularChannelConfig(ADC1,ADC_Channel_15,2,ADC_SampleTime_55Cycles5);ADC_RegularChannelConfig(ADC1,ADC_Channel_6,3,ADC_SampleTime_55Cycles5);ADC_RegularChannelConfig(ADC1,ADC_Channel_4,4,ADC_SampleTime_55Cycles5);这样AD就来回采集通道141564结合DMA后把数据存在刚才定义的数组中。以上是心得,下面是一些疑问1.在配置GPIO的时候我把AD口配成了输出模式,但是后来我把这段注释掉
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026届河南省洛阳市高三上学期二测模拟历史试题(含答案)
- 促销活动广播稿13篇
- 客服专员岗位专业知识测试题及解析
- 门店长面试题及答案
- 监事会工作与员工监督机制面谈题目
- 2025锡林浩特市给排水有限责任公司招募见习人员10人笔试参考题库附带答案详解(3卷合一版)
- 2025重庆广播电视集团(总台)招聘11人笔试参考题库附带答案详解(3卷合一版)
- 2025福建福州城乡建总物业服务有限公司社会招聘1人笔试参考题库附带答案详解(3卷)
- 2025福建土楼旅游投资集团有限公司招聘16人笔试参考题库附带答案详解(3卷合一版)
- 2025甘肃平凉优然牧业有限责任公司招聘6人笔试参考题库附带答案详解(3卷合一版)
- 医学影像云存储:容灾备份与数据恢复方案
- 2025年卫生系统招聘(临床专业知识)考试题库(含答案)
- 基建工程索赔管理人员索赔管理经典文献
- 工业机器人专业大学生职业生涯规划书
- 农贸市场消防安全管理制度
- 良品铺子营运能力分析及对策研究
- 2025年小学教师素养大赛试题(含答案)
- 特种设备应急处置课件
- 2025年科研年度个人工作总结(3篇)
- 热力管网建设工程方案投标文件(技术方案)
- 【《球阀的测绘方法概述》2900字】
评论
0/150
提交评论