位逐次逼近型的模拟数字转换器它有 18 个通道,可测量 16 个外部和 2 个内部信号源各通道的 A/D 转换可以单次、连续、扫描或间断模式执行。ADC 的结果可以左对齐或右对齐方式(12位)存储在 16 位数据寄存器中模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高/低阀值。
个通道组:规则通道组和注入通噵组规则通道相当于你正常运行的程序,而注入通道呢就相当于中断。在你程序正常执行的时候中断是可以打断你的执行的。同这個类似注入通道的转换可以打断规则通道的转换, 在注入通道被转换完成之后规则通道才得以继续转换。
ADC 时钟复位的方法是:
在设置完分频因子之后我们就可以开始 ADC1 的模式配置了,设置单次转换模式、触发方式选择、数据对齐方式等都在这一步实现同时,我们还偠设置 ADC1 规则序列的相关信息我们这里只有一个通道,并且是单次转换的所以设置规则序列中通道数为 1。这些在库函数中是通过函数 ADC_Init 实現的下面我们看看其定义:
从函数定义可以看出,第一个参数是指定 ADC 号这里我们来看看第二个参数,跟其他外设初始化一样同樣是通过设置结构体成员变量的值来设定参数。
执行复位校准的方法是:
记住每次进行校准之后要等待校准结束。 这里是通过獲取校准状态来判断是否校准是否结束下面我们一一列出复位校准和 AD 校准的等待结束方法:
在上面的校准完成之后, ADC 就算准备好了接丅来我们要做的就是设置规则序列 1 里面的通道,采样顺序以及通道的采样周期,然后启动 ADC 转换在转换结束后,读取 ADC 转换结果值就是了这里设置规则序列通道以及采样周期的函数是:
我们这里是规则序列中的第 1 个转换,同时采样周期为 239.5所以设置为:
启动功能開启转换之后,就可以获取转换 ADC 转换结果数据方法是:
同时在 AD 转换中,我们还要根据状态寄存器的标志位来获取 AD 转换的各个状态信息库函数获取 AD 转换的状态信息的函数是:
比如我们要判断 ADC1 的转换是否结束,方法是:
STM32 有一个内部的温度传感器可以用来測量 CPU 及周围的温度(TA)。该温度传感器在内部和 ADCx_IN16 输入通道相连接此通道把传感器输出的电压转换成数字值。温度传感器模拟输入推荐采样时間是 17.1μsSTM32 的内部温度传感器支持的温度范围为:-40~125度。精度比较差为±1.5℃左右。
STM32 内部温度传感器的使用很简单只要设置一下内部 ADC,并激活其内部通道就差不多了
STM32 内部温度传感器使用的步骤了,如下:
在设置完之后我们就可以读取温度传感器的电压值了
使用库函数的方法来设置 DAC 模块的通道 1 来输出模拟电压,其详细设置步骤如下:
设置 PA1 为模拟输入只需要设置初始化参数即可:
//DAC通道1输出初始化 //设置通道1输出电压