Presentation is loading. Please wait.

Presentation is loading. Please wait.

《手把手教你学STM32》 主讲人 :正点原子团队 硬件平台:正点原子STM32开发板 版权所有:广州市星翼电子科技有限公司 淘宝店铺:

Similar presentations


Presentation on theme: "《手把手教你学STM32》 主讲人 :正点原子团队 硬件平台:正点原子STM32开发板 版权所有:广州市星翼电子科技有限公司 淘宝店铺:"— Presentation transcript:

1 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
《手把手教你学STM32》 主讲人 :正点原子团队 硬件平台:正点原子STM32开发板 版权所有:广州市星翼电子科技有限公司 淘宝店铺: 技术论坛: 开源电子网 公众平台:“正点原子” 官方网站: 联系电话: ddddd ALIENTEK 淘宝店铺: 技术论坛:

2 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
《手把手教你学STM32》 ADC模数转换 基本原理 适用平台 STM32F1xx 开发板 (正点原子) STM32F4xx 开发板 (正点原子) ddddd 淘宝店铺: 技术论坛:

3 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
目录 STM32 ADC 1 寄存器和库函数配置 2 淘宝店铺: 技术论坛:

4 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
ADC 参考资料: 正点原子探索者STM32F4开发板 《STM32F4开发指南-库函数版本》-第23章 ADC实验 STM32F4xx官方资料: 《STM32F4中文参考手册》-第11章 模数转换(ADC) 淘宝店铺: 技术论坛:

5 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
ADC ADC Analog-to-Digital Converter的缩写。指模/数转换器或者模拟/数字转换器。是指将连续变量的模拟信号转换为离散的数字信号的器件。 典型的模拟数字转换器将模拟信号转换为表示一定比例电压值的数字信号。 淘宝店铺: 技术论坛:

6 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
ADC STM32F4x ADC特点 淘宝店铺: 技术论坛:

7 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
ADC STM32F40x大容量芯片带3个ADC控制器 其中144脚芯片因为带PF脚,所以多8个通道,为24个外部通道。 小于144脚芯片只有16个外部通道。 淘宝店铺: 技术论坛:

8 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
ADC STM32F40x系列ADC外部通道和引脚对应关系 通道号 ADC1 ADC2 ADC3 通道0 PA0 通道1 PA1 通道2 PA2 通道3 PA3 通道4 PA4 PF6 通道5 PA5 PF7 通道6 PA6 PF8 通道7 PA7 PF9 通道8 PB0 PF10 通道9 PB1 PF3 通道10 PC0 通道11 PC1 通道12 PC2 通道13 PC13 通道14 PC4 PF4 通道15 PC5 PF5 淘宝店铺: 技术论坛:

9 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
ADC ADC引脚 淘宝店铺: 技术论坛:

10 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
ADC ADC框图 淘宝店铺: 技术论坛:

11 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
ADC 淘宝店铺: 技术论坛:

12 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
ADC STM32通道组 规则通道组:相当正常运行的程序。最多16个通道。 规则通道和它的转换顺序在ADC_SQRx寄存器中选择,规则 组转换的总数应写入ADC_SQR1寄存器的L[3:0]中 ② 注入通道组:相当于中断。最多4个通道。 注入组和它的转换顺序在ADC_JSQR寄存器中选择。注入组 里转化的总数应写入ADC_JSQR寄存器的L[1:0]中 淘宝店铺: 技术论坛:

13 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
ADC 注入通道1 规则通道1 规则通道1 规则通道2 注入通道1 规则通道2 注入通道N 规则通道N 规则通道N 淘宝店铺: 技术论坛:

14 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
ADC STM32F4的ADC的各通道可以单次,连续,扫描 或者间断模式执行。 淘宝店铺: 技术论坛:

15 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
ADC 单次转化 VS 连续转换 淘宝店铺: 技术论坛:

16 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
ADC 单次转化 VS 连续转换 淘宝店铺: 技术论坛:

17 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
ADC 扫描模式 淘宝店铺: 技术论坛:

18 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
ADC ADC_CR1控制寄存器1 淘宝店铺: 技术论坛:

19 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
ADC ADC中断 淘宝店铺: 技术论坛:

20 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
ADC ADC时钟配置 不要让ADC时钟超过36MHz,否则可能不准。 淘宝店铺: 技术论坛:

21 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
ADC ADC_CCR通用控制寄存器 淘宝店铺: 技术论坛:

22 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
ADC ADC_CR1寄存器 在扫描模式下,由ADC_SQRx或者ADC_JSQRx寄存器选中的通道被转换。如果设置了EOCIE或者JEOCIE为0,在最后一个通道转换完毕后才会产生EOC或者JEOC中断。 淘宝店铺: 技术论坛:

23 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
ADC ADC_CR2寄存器 淘宝店铺: 技术论坛:

24 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
ADC 数据对齐方式 淘宝店铺: 技术论坛:

25 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
ADC ADC_CR2寄存器 淘宝店铺: 技术论坛:

26 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
ADC ADC_CR2寄存器 淘宝店铺: 技术论坛:

27 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
ADC ADC_SMPR1寄存器 淘宝店铺: 技术论坛:

28 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
ADC ADC_SMPR2寄存器 淘宝店铺: 技术论坛:

29 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
ADC ADC的采样时间 最小采样时间0.42us(ADC时钟=36MHz,采样周期为3周期下得到) 淘宝店铺: 技术论坛:

30 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
ADC ADC_SQR1/SQR2/SQR3规则序列寄存器 淘宝店铺: 技术论坛:

31 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
ADC ADC_JSQR注入系列寄存器 淘宝店铺: 技术论坛:

32 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
ADC ADC_DR规则通道数据寄存器 淘宝店铺: 技术论坛:

33 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
ADC ADC_JDR注入通道数据寄存器 淘宝店铺: 技术论坛:

34 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
ADC ADC_SR状态寄存器 淘宝店铺: 技术论坛:

35 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
ADC 常用库函数 void ADC_CommonInit(ADC_CommonInitTypeDef* ADC_CommonInitStruct); void ADC_Init(ADC_TypeDef* ADCx, ADC_InitTypeDef* ADC_InitStruct); void ADC_DeInit(ADC_TypeDef* ADCx) void ADC_Cmd(ADC_TypeDef* ADCx, FunctionalState NewState); void ADC_ITConfig(ADC_TypeDef* ADCx, uint16_t ADC_IT, FunctionalState NewState); void ADC_SoftwareStartConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState); void ADC_RegularChannelConfig(ADC_TypeDef* ADCx, uint8_t ADC_Channel, uint8_t Rank, uint8_t ADC_SampleTime); uint16_t ADC_GetConversionValue(ADC_TypeDef* ADCx); 淘宝店铺: 技术论坛:

36 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
ADC ADC通用初始化函数ADC_CommonInit void ADC_CommonInit(ADC_CommonInitTypeDef* ADC_CommonInitStruct); typedef struct { uint32_t ADC_Mode;//多重ADC模式选择 uint32_t ADC_Prescaler; //ADC预分频 uint32_t ADC_DMAAccessMode; //DMA访问模式 uint32_t ADC_TwoSamplingDelay; //2个采样阶段之间的延迟 }ADC_CommonInitTypeDef; 这些参数用来配置ADC_CCR寄存器的相关参数 淘宝店铺: 技术论坛:

37 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
ADC void ADC_CommonInit(ADC_CommonInitTypeDef* ADC_CommonInitStruct) ADC_CommonInitTypeDef ADC_CommonInitStructure; ADC_CommonInitStructure.ADC_Mode = ADC_Mode_Independent;//独立模式 ADC_CommonInitStructure.ADC_TwoSamplingDelay = ADC_TwoSamplingDelay_5Cycles;//两个采样阶段之间的延迟5个时钟 ADC_CommonInitStructure.ADC_DMAAccessMode = ADC_DMAAccessMode_Disabled; //DMA失能 ADC_CommonInitStructure.ADC_Prescaler = ADC_Prescaler_Div4; ADC_CommonInit(&ADC_CommonInitStructure); 淘宝店铺: 技术论坛:

38 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
ADC ADC初始化函数ADC_Init void ADC_Init(ADC_TypeDef* ADCx, ADC_InitTypeDef* ADC_InitStruct); typedef struct { uint32_t ADC_Resolution;//ADC分辨率 FunctionalState ADC_ScanConvMode; //是否使用扫描模式。ADC_CR1位8:SCAN位 FunctionalState ADC_ContinuousConvMode; //单次转换OR连续转换:ADC_CR2的位1:CONT uint32_t ADC_ExternalTrigConvEdge; //外部触发使能方式:ADC_CR2的位29:28,EXTEN uint32_t ADC_ExternalTrigConv; //触发方式:ADC_CR2的位[19:17] :EXTSEL[2:0] uint32_t ADC_DataAlign; //对齐方式:左对齐还是右对齐:ADC_CR2的位11:ALIGN uint8_t ADC_NbrOfChannel;//规则通道序列长度:ADC_SQR1的位[23:20]: L[3:0] }ADC_InitTypeDef; 淘宝店铺: 技术论坛:

39 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
ADC void ADC_Init(ADC_TypeDef* ADCx, ADC_InitTypeDef* ADC_InitStruct); ADC_InitStructure.ADC_Resolution = ADC_Resolution_12b;//12位模式 ADC_InitStructure.ADC_ScanConvMode = DISABLE;//非扫描模式 ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;//关闭连续转换 ADC_InitStructure.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_None;//禁止触发检测,使用软件触发 ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;//右对齐 ADC_InitStructure.ADC_NbrOfConversion = 1;//1个转换在规则序列中 ADC_Init(ADC1, &ADC_InitStructure);//ADC初始化 淘宝店铺: 技术论坛:

40 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
ADC ADC使能函数 ADC_Cmd(); void ADC_Cmd(ADC_TypeDef* ADCx, FunctionalState NewState); ADC_Cmd(ADC1, ENABLE); //使能指定的ADC1 ADC使能软件转换函数 ADC_SoftwareStartConvCmd void ADC_SoftwareStartConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState) ADC_SoftwareStartConvCmd(ADC1, ENABLE);//使能ADC1的软件转换启动 淘宝店铺: 技术论坛:

41 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
ADC ADC 规则通道配置函数ADC_RegularChannelConfig void ADC_RegularChannelConfig(ADC_TypeDef* ADCx, uint8_t ADC_Channel, uint8_t Rank, uint8_t ADC_SampleTime); ADC_RegularChannelConfig(ADC1, ADC_Channel_5, 1, ADC_SampleTime_480Cycles); ADC 获取转换结果函数ADC_GetConversionValue uint16_t ADC_GetConversionValue(ADC_TypeDef* ADCx); ADC_GetConversionValue(ADC1);//获取ADC1转换结果 淘宝店铺: 技术论坛:

42 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
ADC 实验目的:ADC1的通道5(PA5)进行单次转化 开启PA口时钟和ADC1时钟,设置PA1为模拟输入。 RCC_AHB1PeriphClockCmd (RCC_AHB1Periph_GPIOA, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE); GPIO_Init(); ② 复位ADC1,同时设置ADC1分频因子。 ADC_DeInit(ADC1); ③ 初始化ADC_CCR寄存器。 ADC_CommonInit(); ④初始化ADC1参数,设置ADC1的工作模式以及规则序列的相关信息。 void ADC_Init(ADC_TypeDef* ADCx, ADC_InitTypeDef* ADC_InitStruct); ⑤ 使能ADC。 ADC_Cmd(ADC1, ENABLE); ⑥配置规则通道参数: ADC_RegularChannelConfig(); ⑦开启软件转换:ADC_SoftwareStartConvCmd(ADC1); ⑧ 等待转换完成,读取ADC值。 ADC_GetConversionValue(ADC1); 淘宝店铺: 技术论坛:

43 淘宝店铺:http://eboard.taobao.com 技术论坛:www.openedv.com
谢谢您对“正点原子”团队的支持 硬件平台:正点原子STM32开发板 版权所有:广州市星翼电子科技有限公司 淘宝店铺: 技术论坛: 淘宝店铺: 技术论坛:


Download ppt "《手把手教你学STM32》 主讲人 :正点原子团队 硬件平台:正点原子STM32开发板 版权所有:广州市星翼电子科技有限公司 淘宝店铺:"

Similar presentations


Ads by Google