STM32W108无线射频模块AD转换器应用实例

本文介绍了STM32W108无线射频模块的AD转换器应用,包括12位分辨率、传感器数据采集程序设计、测试程序编写以及测试结果分析。通过烟雾传感器为例,详细阐述了AD转换功能的开启、参考类型选择和通道配置,展示了无线传感器网络在物联网技术中的应用。
摘要由CSDN通过智能技术生成

STM32W108无线射频模块AD转换器应用实例 

 

STM32W108 AD转换器是一个一阶∑-△转换器,具有以下特性:

l  分辨率可达12

l  采样最小时间5.33us188KHz

l  6个外部和4个内部输入源,可进行差分和单端转换

l  两个电压转换范围(差分):-VREF~+VREF-VDD_PADS~+VDD_PADS

l  可选择内部和外部参考标准VREF:内部的VREF可用于输出

l  数字偏移和增益校准

l  专用DMA通道,通道支持一次和连续的操作模式

应用实例解析

编写烟雾传感器测试程序,读取烟雾传感器的AD值,并输出到串口显示。

9.3.1开发环境与硬件说明

硬件:STM32W108 无线开发板、烟雾传感器、J-LINK调试器、PC机等。

软件:IAR Embedded Workbench开发软件、SimpleMac协议栈。

 

 

 

9.3.2 软件设计与规划

本实例烟雾传感器中用到adc.c中的函数,有StStatus halStartAdcConversion(ADCUser id, ADCReferenceType reference, ADCChannelType channel, ADCRateTyperate),该函数是开启AD转换功能;其中ADCUser idadc.h中定义,有三种,本实例中用到ADC_USER_APPADCReferenceType reference为参考类型,adc.h中定义,本实例中用ADC_REF_INTADCChannelType channel为模拟输入通道,在adc.h中定义,本实例中用到的是PA4作为模拟输入的通道;ADCRateType rateAD转换频率,在adc.h中定义,本实例中用到的是ADC_CONVERSION_TIME_US_40964096us12个有效位。

无线节点上电首先进行硬件初始化,然后等按键S2被按下,只要S2被按下,无线节点就周期性的进行AD转换。

9.3.3 传感器数据采集程序设计

在烟雾传感器的驱动程序中涉及到了AD转换的内容:

其中adc.h中的内容有:

static int16u adcData;             //DMA中的ADC转换结果

 

在烟雾传感器的驱动程序中涉及到了AD转换的函数:

adc.c中的添加函数有:

/**************************************************************************

功能描述:完成对AD转换后数据的获取

输入参数:无

输出参数:AD转换后的16位无符号数

*************************************************************************/

int16u  getData(void)

{   

int16s data; //存放AD转换后的电压的数值

while ( !(INT_ADCFLAG &  INT_ADCULDFULL));  //无效时,空等待

data=halConvertValueToVolts(adcData);  //AD转换的电压数据存至data变量中

    return (int16u)data;

}

 

/**************************************************************************

功能描述:内部

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值