版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1.8.3AD转换及DMA固件函数库项目一11一月2026智能电子产品设计与制作主要内容ADC及DMA固件函数库3.ADC及DMA固件函数库(1)函数ADC_Init函数原型:voidADC_Init(ADC_TypeDef*ADCx,ADC_InitTypeDef*ADC_InitStruct)函数功能:根据ADC_InitTypeDef中指定的参数初始化外设ADCx寄存器。ADC_InitStruct指向ADC_InitTypeDef的指针,ADC_InitTypeDef结构体定义于stm32f0xx_adc.h文件中。其结构体如下:typedefstruct{uint32_tADC_Resolution;//分辨率选择FunctionalStateADC_ContinuousConvMode;//转换模式单次还是连续uint32_tADC_ExternalTrigConvEdge;//外部触发边沿uint32_tADC_ExternalTrigConv;//外部触发源uint32_tADC_DataAlign;//对齐方式uint32_tADC_ScanDirection;//扫描方向}ADC_InitTypeDef;3.ADC及DMA固件函数库(1)函数ADC_Init实例:ADC_InitTypeDefADC_InitStructure;ADC_InitStructure.ADC_Resolution=ADC_Resolution_12b;//12位ADADC_InitStructure.ADC_ContinuousConvMode=DISABLE;//连续转换失能//不使用外部触发ADC_InitStructure.ADC_ExternalTrigConvEdge=ADC_ExternalTrigConvEdge_None;ADC_InitStructure.ADC_DataAlign=ADC_DataAlign_Right;//数据右对齐ADC_InitStructure.ADC_ScanDirection=ADC_ScanDirection_Upward;//向上扫描ADC_Init(ADC1,&ADC_InitStructure);3.ADC及DMA固件函数库(2)函数ADC_Cmd函数原型:voidADC_Cmd(ADC_TypeDef*ADCx,FunctionalStateNewState)函数功能:使能ADC实例:ADC_Cmd(ADC1,ENABLE);//使能ADC3.ADC及DMA固件函数库(3)函数ADC_ChannelConfig函数原型:voidADC_ChannelConfig(ADC_TypeDef*ADCx,uint32_tADC_Channel,uint32_tADC_SampleTime)实例:ADC_ChannelConfig(ADC1,ADC_Channel_0,ADC_SampleTime_239_5Cycles);//ADC1通道0,设置采样时间239.5个周期。3.ADC及DMA固件函数库(4)函数ADC_GetCalibrationFactor函数原型:uint32_tADC_GetCalibrationFactor(ADC_TypeDef*ADCx)函数功能:激活所选ADC的校准操作实例:ADC_GetCalibrationFactor(ADC1);//ADC校准(5)函数ADC_StartOfConversion函数原型:voidADC_StartOfConversion(ADC_TypeDef*ADCx)函数功能:启动AD转换实例:ADC_StartOfConversion(ADC1);//启动AD转换3.ADC及DMA固件函数库(6)函数ADC_GetConversionValue函数原型:uint16_tADC_GetConversionValue(ADC_TypeDef*ADCx)函数功能:获取AD转换结果实例:uint16_tAD_Value;AD_Value=ADC_GetConversionValue(ADC1);(7)函数ADC_DMACmd函数原型:voidADC_DMACmd(ADC_TypeDef*ADCx,FunctionalStateNewState)函数功能:使能ADC的DMA请求实例:
ADC_DMACmd(ADC1,ENABLE);//使能ADC的DMA请求3.ADC及DMA固件函数库(8)函数ADC_DMARequestModeConfig函数原型:voidADC_DMARequestModeConfig(ADC_TypeDef*ADCx,uint32_tADC_DMARequestMode)函数功能:启用或禁用上次传输后的ADC的DMA请求。实例:ADC_DMARequestModeConfig(ADC1,ADC_DMAMode_Circular);//循环模式下DMA请求3.ADC及DMA固件函数库(9)函数ADC_GetFlagStatus函数原型:FlagStatusADC_GetFlagStatus(ADC_TypeDef*ADCx,uint32_tADC_FLAG)函数功能:获取ADC状态标志位实例:ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC);//获取AD转换完成状态标志位(10)函数ADC_ClearFlag函数原型:voidADC_ClearFlag(ADC_TypeDef*ADCx,uint32_tADC_FLAG)函数功能:清除ADC状态标志位实例:ADC_ClearFlag(ADC1,ADC_FLAG_EOC);//清除EOC标志位3.ADC及DMA固件函数库(11)函数DMA_Init函数原型:voidDMA_Init(DMA_Channel_TypeDef*DMAy_Channelx,DMA_InitTypeDef*DMA_InitStruct)函数功能:DMA初始化,根据DMA_InitTypeDef中指定的参数初始化外设DMA寄存器。DMA_InitStruct是指向DMA_InitTypeDef的指针,DMA_InitTypeDef结构体定义于stm32f0xx_dma.h文件中,其结构体定义如下:typedefstruct{uint32_tDMA_PeripheralBaseAddr;//外设基地址uint32_tDMA_MemoryBaseAddr;//内存基地址uint32_tDMA_DIR;//DMA传输方向uint32_tDMA_BufferSize;//DMA缓冲区大小uint32_tDMA_PeripheralInc;//外设寄存器地址是否递增uint32_tDMA_MemoryInc;//内存地址是否递增uint32_tDMA_PeripheralDataSize;//外设数据宽度uint32_tDMA_MemoryDataSize;//内存数据宽度uint32_tDMA_Mode;//DMA模式:normal或circular模式uint32_tDMA_Priority;//DMA优先级uint32_tDMA_M2M;//内存到内存传输}DMA_InitTypeDef;3.ADC及DMA固件函数库(11)函数DMA_Init实例:#defineADC1_DR_Address((uint32_t)0x40012440)uint16_tADC_ConvertedValue[1024];DMA_InitTypeDefDMA_InitStructure;DMA_InitStructure.DMA_PeripheralBaseAddr=ADC1_DR_Address;//外设基地址//内存基地址DMA_InitStructure.DMA_MemoryBaseAddr=(uint32_t)ADC_ConvertedValue;DMA_InitStructure.DMA_DIR=DMA_DIR_PeripheralSRC;//传输方向外设到内存DMA_InitStructure.DMA_BufferSize=1024;//定义内存缓冲区大小//外设地址不递增DMA_InitStructure.DMA_PeripheralInc=DMA_PeripheralInc_Disable;DMA_InitStructure.DMA_MemoryInc=DMA_MemoryInc_Enable;//内存地址递增//半字传输DMA_InitStructure.DMA_PeripheralDataSize=DMA_PeripheralDataSize_HalfWord;//半字传输DMA_InitStructure.DMA_MemoryDataSize=DMA_MemoryDataSize_HalfWord;DMA_InitStructure.DMA_Mode=DMA_Mode_Circular;//循环模式DMA_InitStructure.DMA_Priority=DMA_Priority_High;//优先级为高DMA_InitStructure.DMA_M2M=DMA_M2M_Disable;//非内存到内存DMA_Init(DMA1_Channel1,&DMA_InitStructure);3.ADC及DMA固件函数库(12)函数DMA_Cmd函数原型:voidDMA_Cmd(DMA_Channel_TypeDef*DMAy_Channelx,FunctionalStateNewState)函数功能:使能DMA的通道实例:DMA_Cmd(DMA1_Channel1,ENABLE);//使能DMA1通道1(13)函数DMA_ITConfig函数原型:voidDMA_ITConfig(DMA_Channel_TypeDef*DMAy_Channelx,uint32_tDMA_IT,FunctionalStateNewState)函数功能:DMA中断使能配置实例:DMA_ITConfig(DMA1_Channel1,DMA_IT_TC,ENABLE);//使能DMA1通道1发送完成中断3.ADC及DMA固件函数库(14)函数DMA_GetITStatus函数原型:ITStatusDMA_GetITStatus(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年高职学校社会工作(学校社工技巧)试题及答案
- 2025年大学大三(生态学)群落生态学基础试题及解析
- 2025年高职化妆品检验技术(化妆品检验应用)试题及答案
- 2025年大学护理学(老年护理基础)试题及答案
- 2025年中职(饲料加工技术)饲料配方设计阶段测试题及答案
- 2025年中职文化创意与策划(文案写作)试题及答案
- 2025年中职软件工程(软件测试自动化框架)试题及答案
- 2025年大学植物科学与技术(农产品质量检测)试题及答案
- 2025年高职餐饮管理(餐饮质量管理)试题及答案
- 2025年高职(建筑装饰工程技术)软装设计测试题及答案
- 期末水平综合练习(试题)新思维小学英语一年级上册
- 招标代理机构入围服务 投标方案(技术标)
- 江苏省高新技术产业统计分类目录
- 1-6-黄煌经方使用手册
- 全省通信线路培训班通信电缆讲稿教学课件
- 人教A版高中数学选择性必修第二册全册各章节课时练习题含答案解析(第四章数列、第五章一元函数的导数及其应用)
- 国开电大公共行政学形考任务二答案
- 六年级下册小升初全复习-第12讲 工程问题-北师大 (含答案)
- 某项目盘扣式满堂脚手架搭设施工方案
- 金风科技-风电产业集团-供应商现场作业基础安全考试附答案
- 烹饪原料知识 水产品虾蟹类
评论
0/150
提交评论