基于ARM的单片机应用及实践课件-第七章选编.ppt

基于ARM的单片机应用及实践课件-第七章选编.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于ARM的单片机应用及实践课件-第七章选编

第七章 STM32 的 A/D 转换模块;7.1A/D 模块主要技术指标及选型;7.1A/D 模块主要技术指标及选型;不同类型的 ADC 转换器的结构、转换原理和性能指标方面的差异非常大。表 7.1 列出了常用类型的 ADC 的主要特点和应用范围。;A/D 转换器选型技巧及注意事项;2.与 ADC 配套使用其他芯片的选用依据 为了配合 ADC 的使用,一般在 ADC 的外围还需要添加一些其他芯片,常见的有多路模拟开关电路、采样/保持器和运算放大器等。;7.1A/D 模块主要技术指标及选型;4. 基准电压源的选择 基准电压源提供稳定的基准电压,要求什么样的基准电压源指标取决于具体应用。作为电路设计的一个关键因素,基准电压源的选择需要考虑多方面的问题并做出折。 两种常见的基准源是齐纳和带隙基准源。齐纳基准源通常采用两端并联拓扑;带隙基准源通常采用三端串联拓扑。 ;7.1A/D 模块主要技术指标及选型;7.2 STM32A/D 转换模块;7.2 STM32A/D 转换模块;7.2 STM32A/D 转换模块;7.2 STM32A/D 转换模块;7.2 STM32A/D 转换模块;7.2 STM32A/D 转换模块;7.2 STM32A/D 转换模块;7.2 STM32A/D 转换模块;7.2 STM32A/D 转换模块;7.2 STM32A/D 转换模块;7.2 STM32A/D 转换模块;7.2 STM32A/D 转换模块;7.2 STM32A/D 转换模块;7.2 STM32A/D 转换模块;7.2 STM32A/D 转换模块;7.2 STM32A/D 转换模块;这里使用的是软件触发(SWSTART),所以设置这3个位为111。ADC_CR2的SWSTART位用于开始规则通道的转换,每次转换(单次转换模式下)都需要向该位写1。AWDEN为用于使能温度传感器和Vrefint。STM32内部的温度传感器本书将在随后章节介绍。;7.2 STM32A/D 转换模块;7.2 STM32A/D 转换模块;对于每个要转换的通道,采样时间建议尽量长一点,以获得较高的准确度,但是这样会降低ADC的转换速率。ADC的转换时间可以由下式计算: Tcovn=采样时间+12.5个周期 其中:Tcovn为总转换时间,采样时间是根据每个通道的SMP位的设置来决定的。例如, 当ADCCLK=14Mhz的时候,并设置1.5个周期的采样时间,则得到:Tcovn=1.5+12.5=14个周期=1us。;第三个要介绍的是 ADC 规则序列寄存器(ADC_SQR1~3),该寄存器总共有 3 个,这几个寄存器的功能都差不多,这里本书仅介绍一下 ADC_SQR1,该寄存器的各位描述如下:;7.2 STM32A/D 转换模块;7.2 STM32A/D 转换模块;7.2 STM32A/D 转换模块;这里本书要用到的是EOC位,本书通过判断该位来决定是否此次规则通道的AD转换已经完成,如果完成本书就从ADC_DR中读取转换结果,否则等待转换完成。;7.2 STM32A/D 转换模块;7.2 STM32A/D 转换模块;7.2 STM32A/D 转换模块;7.3STM32 内部温度传感器;7.3STM32 内部温度传感器;7.3STM32 内部温度传感器;STM32 的内部温度传感器固定的连接在 ADC 的通道 16 上,所以,我们在设置好 ADC 之后只要读取通道 16 的值,就是温度传感器返回来的电压值了。根据这个值,我们就可以计算出当前温度。计算公式如下: T(℃)={(V25-Vsense)/Avg_Slope }+25 该式中: V25=Vsense在25度时的数值(典型值为:1.43。 Avg_Slope=温度与Vsense曲线的平均斜率(单位为mv/℃或uv/℃)(典型值为4.3Mv/℃)。 利用以上公式,我们就可以方便的计算出当前温度传感器的温度了。 ;7.3STM32 内部温度传感器;7.3 STM32内部温度传感器;7.3 STM32 内部温度传感器;7.3 STM32 内部温度传感器;7.3STM32 内部温度传感器;打开MDK 开发坏境,建立工程,取名TEST_LED。 步骤一:初始化串口,使用函数为USART1_Config()。 步骤二:使能ADC1,并使ADC1 工作于DMA 方式,使用函数为static void ADC1_Mode_Config();该函数的实现如下:;7.3STM32 内部温度传感器;7.3STM32 内部温度???感器;7.3STM32 内部温度传感器;步骤三:main.c 中,在主函数中,根据ADC 得到的温度值ADC_ConvertedValue 计算当 前温度Current_Temp 并通过串口显示出来、添加如下程序

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档