收藏 分销(赏)

嵌入式系统设计(STM32)第7讲PPT学习课件.ppt

上传人:人****来 文档编号:10055051 上传时间:2025-04-19 格式:PPT 页数:66 大小:1.87MB
下载 相关 举报
嵌入式系统设计(STM32)第7讲PPT学习课件.ppt_第1页
第1页 / 共66页
嵌入式系统设计(STM32)第7讲PPT学习课件.ppt_第2页
第2页 / 共66页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2,*,第,7,讲,STM32,的,AD,转换器,1,2,主要内容,7.1 ADC,的硬件结构及特征,7.2,工作模式,7.3 ADC,中断,7.4 ADC,寄存器,7.5 ADC,库函数,7.6 ADC,程序设计,2,2025/4/19 周六,7.1 ADC,的硬件结构及功能,STM32F103,有,2,个,12,位,ADC,(,ADC1,和,ADC2,),是逐次逼近型模拟,/,数字转换器。,ADC,的输入时钟不得超过,14MHz,,它是由,PCLK2,经分频产生,它有多达,18,个通道,可测量,16,个外部和,2,个内部信号源。,各通道的,A/D,转换可以单次、连续、扫描或间断模式执行。,ADC,的结果可以左对齐或右对齐方式存储在,16,位数据寄存器中。,3,2025/4/19 周六,ADCx,的输入通道,ADC123_IN0-PA0,ADC123_IN1-PA1,ADC123_IN2-PA2,ADC123_IN3-PA3,ADC12_IN4-PA4,ADC12_IN5-PA5,ADC12_IN6-PA6,ADC12_IN7-PA7,ADC12_IN8-PB0,ADC12_IN9-PB1,ADC123_IN10-PC0,ADC123_IN11-PC1,ADC123_IN12-PC2,ADC123_IN13-PC3,ADC12_IN14-PC4,ADC12_IN15-PC5,ADC3_IN4-PF6,ADC3_IN5-PF7,ADC3_IN6-PF8,ADC3_IN7-PF9,ADC3_IN8-PF10,4,2025/4/19 周六,ADC,主要特征,12,位分辨率,转换结束、注入转换结束和发生模拟看门狗事件时产生中断,单次和连续转换模式,从通道,0,到通道,n,的自动扫描模式,自校准,带内嵌数据一致性的数据对齐,采样间隔可以按通道分别编程,规则转换和注入转换均有外部触发选项,间断模式,双重模式,(,带,2,个或以上,ADC,的器件,),ADC,转换时间:,STM32F103xx,增强型产品:时钟为,56MHz,时为,1s(,时钟为,72MHz,为,1.17s),。,ADC,供电要求:,2.4V,到,3.6V,ADC,输入范围:,VREF-,VIN,VREF+,规则通道转换期间有,DMA,请求产生。,5,2025/4/19 周六,7.2,工作模式,通道选择,单次转换模式,连续转换模式,扫描模式,间断模式,数据对齐,双,ADC,模式,6,2025/4/19 周六,通道选择,有,16,个多路通道。可以把转换组织成两组:,规则组,和,注入组,。在任意多个通道上以任意顺序进行的一系列转换构成成组转换。,规则组,由多达,16,个转换组成。规则通道和它们的转换顺序在,ADC_SQRx,寄存器中选择。,注入组,由多达,4,个转换组成。注入通道和它们的转换顺序在,ADC_JSQR,寄存器中选择。,7,2025/4/19 周六,单次转换模式,单次转换模式下,,ADC,只执行一次转换。,如果一个规则通道被转换:,转换数据被储存在,16,位,ADC_DR,寄存器中,EOC(,转换结束,),标志被设置,如果设置了,EOCIE,,则产生中断。,如果一个注入通道被转换:,转换数据被储存在,16,位的,ADC_DRJ1,寄存器中,JEOC(,注入转换结束,),标志被设置,如果设置了,JEOCIE,位,则产生中断。,然后,ADC,停止。,8,2025/4/19 周六,连续转换模式,在连续转换模式中,当前面,ADC,转换一结束马上就启动另一次转换。,如果一个规则通道被转换:,转换数据被储存在,16,位的,ADC_DR,寄存器中,EOC(,转换结束,),标志被设置,如果设置了,EOCIE,,则产生中断。,如果一个注入通道被转换:,转换数据被储存在,16,位的,ADC_DRJ1,寄存器中,JEOC(,注入转换结束,),标志被设置,如果设置了,JEOCIE,位,则产生中断。,9,2025/4/19 周六,扫描模式,此模式用来扫描一组模拟通道。,ADC,扫描所有被,ADC_SQRX,寄存器,(,对规则通道,),或,ADC_JSQR(,对注入通道,),选中的所有通道。,在每个组的每个通道上执行单次转换。在每个转换结束时,同一组的下一个通道被自动转换。,如果设置了寄存器,ADC_CR2,中的,CONT,位,转换不会在选择组的最后一个通道上停止,而是再次从选择组的第一个通道继续转换。,10,2025/4/19 周六,间断模式,规则组:此模式通过设置,ADC_CR1,寄存器上的,DISCEN,位激活。它可以用来执行一个短序列的,n,次转换,(nODR=0 xffffffff;,while(1),ADC=Get_Adc(14);/smart,开发板,ADC1,通道,14,,,PC4,ADC14=ADC*3300/4095;,a1=ADC14/1000;a11=ADC%1000;,a2=a11/100;a21=a11%100;,a3=a21/10;a31=a21%10;,a4=a31;,a1=a1+0 x30;a2=a2+0 x30;a3=a3+0 x30;a4=a4+0 x30;,54,2025/4/19 周六,主程序(续),Uart1_PutChar(a1);Delay(0 x02fff);,Uart1_PutChar(.);Delay(0 x002fff);,Uart1_PutChar(a2);Delay(0 x002fff);,Uart1_PutChar(a3);Delay(0 x002fff);,Uart1_PutChar(a4);Delay(0 x002fff);,Uart1_PutChar(0 x0d);Uart1_PutChar(0 x0a);Delay(0 x08fffff);,55,2025/4/19 周六,串口发送数据子函数:,void Uart1_PutChar(u8 ch),USART_SendData(USART1,(u8)ch);,if(USART_GetFlagStatus(USART1,USART_FLAG_TXE)=SET),USART_ClearFlag(USART1,USART_FLAG_TXE);,void Uart1_PutString(u8*buf,u8 len),u8 i=0;,for(i=0;ilen;i+),Uart1_PutChar(*buf+);,56,2025/4/19 周六,串口初始化函数:,void uart_init(),USART_InitTypeDef USART_InitStructure;,USART_InitStructure.USART_BaudRate=9600;/,波特率,9600,USART_InitStructure.USART_WordLength=USART_WordLength_8b;,USART_InitStructure.USART_StopBits=USART_StopBits_1;,USART_InitStructure.USART_Parity=USART_Parity_No;,USART_InitStructure.USART_HardwareFlowControl=,USART_HardwareFlowControl_None;,USART_InitStructure.USART_Mode=USART_Mode_Rx|,USART_Mode_Tx;,USART_Init(USART1,USART_Cmd(USART1,ENABLE);/,使能串口,57,2025/4/19 周六,ADC1,初始化函数:,void Adc_Init(void),ADC_InitTypeDef ADC_InitStructure;,RCC_ADCCLKConfig(RCC_PCLK2_Div6);,ADC_DeInit(ADC1);/?ADC1,初始化,ADC_InitStructure.ADC_Mode=ADC_Mode_Independent;,ADC_InitStructure.ADC_ScanConvMode=DISABLE;,ADC_InitStructure.ADC_ContinuousConvMode=DISABLE;,ADC_InitStructure.ADC_ExternalTrigConv=ADC_ExternalTrigConv_None;,ADC_InitStructure.ADC_DataAlign=ADC_DataAlign_Right;,ADC_InitStructure.ADC_NbrOfChannel=1;,ADC_Init(ADC1,ADC_Cmd(ADC1,ENABLE);,ADC_ResetCalibration(ADC1);,while(ADC_GetResetCalibrationStatus(ADC1);,ADC_StartCalibration(ADC1);,while(ADC_GetCalibrationStatus(ADC1);,ADC_SoftwareStartConvCmd(ADC1,ENABLE);,58,2025/4/19 周六,读,AD,转换结果子函数:,u16 Get_Adc(u8 ch),ADC_RegularChannelConfig(ADC1,ch,1,ADC_SampleTime_239Cycles5);,ADC_SoftwareStartConvCmd(ADC1,ENABLE);,while(!ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC);,return ADC_GetConversionValue(ADC1);,T=239.5+12.5=252cyles,59,2025/4/19 周六,时钟初始化函数:,void RCC_Configuration(),/,配置系统时钟(略),/,配置外设时钟,RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|,RCC_APB2Periph_GPIOC|RCC_APB2Periph_GPIOD,ENABLE);,RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_ADC1,ENABLE);,/,延时函数:,void Delay(vu32 nCount),for(;nCount!=0;nCount-);,60,2025/4/19 周六,GPIO,初始化函数,void GPIO_Configuration(void),GPIO_InitStructure.GPIO_Pin=GPIO_Pin_4;,GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AIN;,GPIO_Init(GPIOC,GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;,GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;,GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;,GPIO_Init(GPIOA,GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10;,GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;,GPIO_Init(GPIOA,61,2025/4/19 周六,习题,7,1.STM32F103VB,内置()个()位的,AD,转换器。,2.AD,转换器有()个模拟量输入通道,其中外部通道()个,内部通道()个。,3.STM32F103VB,的,AD,转换器的转换原理是(),转换时间最快为(),us,。,4.STM32F103VB,的,AD,转换器的转换时钟频率不能超过(),MHz.,5.STM32F103VB,的,AD,转换器可将(),V-,(),V,电压转换成(),-,()的二进制数。,6.ADC,主要有,4,种转换模式,:()、()、()和()。,7.,启动,AD,转换有两种方式:()和()。,62,2025/4/19 周六,AD,转换结束后,转换结束标志位会置()。,多个通道进行,AD,转换时,可设置成()通道组或者()通道组。,规则通道组最多有()个通道转换。注入通道组最多允许()通道转换。通过编程设置每个通道的转换顺序。,转换时间等于采样时间加上()个时钟周期。,模拟看门狗部分用于监控检测电压是否超过高、低阈值电压,若超过,可以产生()。,63,2025/4/19 周六,请解释下面的,AD,配置程序,ADC_InitStructure.ADC_Mode=ADC_Mode_Independent;,ADC_InitStructure.ADC_ScanConvMode=DISABLE;,ADC_InitStructure.ADC_ContinuousConvMode=DISABLE;,ADC_InitStructure.ADC_ExternalTrigConv=ADC_ExternalTrigConv_None;,ADC_InitStructure.ADC_DataAlign=ADC_DataAlign_Right;,ADC_InitStructure.ADC_NbrOfChannel=1;,ADC_Init(ADC1,64,2025/4/19 周六,实验七,A/D,转换实验,实验目的:掌握,STM32A/D,转换器结构特点以及程序设计方法。,实验要求:编写程序将通道,14,的,A/D,转换结果上传到,PC,机,开关拨到,ISP,USB5V,利用,SSCOM33,串口助手,下载前,关闭串口。下载完成后打开串口。,65,2025/4/19 周六,谢谢!,66,2025/4/19 周六,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服