玩转X-CTR100 l STM32F4 l ADC 模拟数字转换

我造轮子,你造车,创客一起造起来!塔克创新资讯【塔克社区 www.xtark.cn 】【塔克博客 www.cnblogs.com/xtark/ 】

本文介绍X-CTR100控制器 AD转换接口的使用,采集模拟信号及芯片温度。
原理
处理器STM32F407具有3个ADC,12位逐次逼近型,具有19个ADC检测通道,可测量16个外部源、2个内部源和VBAT电压,最大转换速率为2.4MHz。
STM32F4芯片内部具有温度传感器,连接ADC1_IN16通道,通过ADC实现温度采集,温度传感器支持的温度范围-40~125度,精度±1.5℃。
X-CTR100通过扩展接口引出7个ADC采样通道,使用ADC1外设采样,可用于采集各种模拟传感器电压输出信号。
X-CTR100的ADC电源及参考电压VREF+和VDDA接3.3V,VSSA和VREF-接地,输入电压范围0~3.3V,详见原理图。
例程
本例程实现X-CTR100 ADC接口的模拟信号采样功能。
硬件说明
硬件资源:
- 串口UART1
- ADC接口(LJ、LK、LL、LM、LN、LO、LP)
- 辅助ADC模拟源(自备),本文使用摇杆和光敏电阻作为模拟源
硬件连接:
使用MicroUSB数据线连接X-CTR100 COM接口。
ADC接口连接模拟输入源,如下图。

软件生态
X-SOFT软件生态,X-API文件如下。
ax_adc.c——X-CTR100板载ADC接口源文件
ax_adc.h——X-CTR100板载ADC接口头文件
ADC操作函数如下:
|
void AX_ADC_Init(void); //ADC初始化,包括温度传感器 uint16_t AX_ADC_GetRegData(uint8_t ch); //ADC获取转换数值(寄存器原始值) float AX_ADC_GetVol(uint8_t ch); //ADC获取转换电压值 uint16_t AX_ADC_GetVol_X1000(uint8_t ch); //ADC获取转换电压值,数值扩大1000倍。例如1.8V输出为1800。 int16_t AX_ADC_GetICTemp_X100(void); //ADC获取片内温度传感器温度值 |
通道宏定义。
|
#define #define #define #define #define #define #define |
软件说明
本例程分三步。第一步,采集J通道数据三次,分别调用不同的函数,即显示寄存器值电压、实际电压(浮点型)、扩大1000倍整数电压三种形式。
第二步,采集芯片温度传感器一次。第三步,循环采集7个AD采样通道电压值,采样间隔为1S。
主程序。
|
int main(void) { //X-CTR100初始化 AX_Init(115200); printf("***X-CTR100 ADC采样例程***\r\n\r\n");
//模块初始化及配置 AX_ADC_Init();
//X-API测试:采集J通道数据一次 printf("*采集J通道数据测试 \r\n"); printf("*通道J寄存器数值:%d \r\n", AX_ADC_GetRegData(AX_ADC_CH_J)); printf("*通道J实际电压值:%f \r\n", AX_ADC_GetVol(AX_ADC_CH_J)); printf("*通道J实际电压值X1000:%d \r\n\r\n", AX_ADC_GetVol_X1000(AX_ADC_CH_J));
//X-API测试:采集控制器芯片温度 printf("*采集控制器芯片温度测试 \r\n"); printf("*IC温度值X100:%d \r\n\r\n", AX_ADC_GetICTemp_X100());
//X-API测试:循环采集J-P 7个AD采样通道电压值 printf("*循环采集7个AD采样通道电压值测试\r\n"); printf("*注意:如果管脚悬空,采集的数值无实际意义 \r\n");
while (1) { printf("*J=%d K=%d L=%d M=%d N=%d O=%d P=%d \r\n", AX_ADC_GetRegData(AX_ADC_CH_J), AX_ADC_GetRegData(AX_ADC_CH_K), AX_ADC_GetRegData(AX_ADC_CH_L), AX_ADC_GetRegData(AX_ADC_CH_M), AX_ADC_GetRegData(AX_ADC_CH_N), AX_ADC_GetRegData(AX_ADC_CH_O), AX_ADC_GetRegData(AX_ADC_CH_P)); AX_Delayms(1000); } } |
本程序AX_ADC_Init()函数对GPIO对应7个通道、ADC1及片内温度传感器初始化,完成ADC初始化后,X-API关于ADC相关函数AX_ADC_XXX()均可以使用。
实现效果
运行效果如下图所示。

总结
通过本文学习,可以轻松掌握X-CTR100控制器 ADC采样的使用。
玩转X-CTR100 l STM32F4 l ADC 模拟数字转换的更多相关文章
- 玩转X-CTR100 l STM32F4 l MPU6050加速度陀螺仪传感器
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器 板载加速度 ...
- 玩转X-CTR100 l STM32F4 l X-CTR100与树莓派搭建机器人平台
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器与树莓派Linux系统 ...
- 玩转X-CTR100 l STM32F4 l 舵机控制
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器的舵机控制,X-CTR ...
- 玩转X-CTR100 l STM32F4 l DRV8825 A4988 步进电机控制
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器控制步进电机 ...
- 玩转X-CTR100 l STM32F4 l 基础例程printf、LED、蜂鸣器、拨码开关、位带操作
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器基础板载资源 ...
- 玩转X-CTR100 l STM32F4 l PS2无线手柄
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] SONY的PS2无线手柄是索尼游戏机的遥控手柄,控制 ...
- 玩转X-CTR100 l STM32F4 l DSP指令集性能测试
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器 DSP库的 ...
- 玩转X-CTR100 l STM32F4 l FPU单精度浮点性能测试
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器如何开启ST ...
- 玩转X-CTR100 l STM32F4 l RNG硬件随机数发生器
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器 STM32F4硬件随 ...
随机推荐
- 关于express项目的创建与启动
没有经常用,所以经常搞错, 创建express项目,需要新建一个文件夹名,这个文件名就是用来承载express的内容的, 好了.打开终端,cd至创建的文件夹之下. 也可以直接这样,如以下,admin为 ...
- UI自动化测试篇 :webdriver+ant+jenkins自动化测试实践
http://www.cnblogs.com/chengtch/p/6063360.html 前面基本弄清楚了webdriver+ testng 的测试环境部署,现在这里记录一下结合ant及jenki ...
- Jenkins 对项目持续集成的配置之二 API接口自动化 Ant+Jmeter
先介绍一下Ant+Jmeter 略 我的另一篇文章有讲在linux上部署ant + jmeter以满足CI持续化集成 https://www.cnblogs.com/qianjinyan/p/9067 ...
- thinkphp5开发的网站出现”No input file specified”(php版本5.6.27)
thinkphp5开发的网站出现”No input file specified”(php版本5.6.27) 一.总结 一句话总结:搜索引擎一定要用google,比百度节约时间一万倍,google啊, ...
- smarty课程---smarty3的安装和使用
smarty课程---smarty3的安装和使用 一.总结 一句话总结:smarty 是什么,就不多说了,用过php,接触过php的人都对smarty 再熟悉不过了.它是一个很强大的代码分离软件,作为 ...
- [Java学习] Java继承的概念与实现
继承是类与类之间的关系,是一个很简单很直观的概念,与现实世界中的继承(例如儿子继承父亲财产)类似. 继承可以理解为一个类从另一个类获取方法和属性的过程.如果类B继承于类A,那么B就拥有A的方法和属性. ...
- 【转】ArcGIS API for Silverlight/WPF 2.1学习笔记(四)
七.Editing ArcGIS Server 10提供了: 通过feature service,在Web上编辑Feature layers的geographic data的功能. 通过geome ...
- Silverlight自定义控件系列 – TreeView (2) 基本布局和States
TreeView的树形结构都以缩进方式显示,现在来完成这部分. 首先,要定义出每个节点上都包含什么东西.先看看Win7资源管理器的TreeView: 图2.1 资源管理器 一个通用的TreeView至 ...
- 3-30 flash(api),rescue_from(); logger简介
ActionDispatch::Flash < Objec pass temporary primitive-types (String, Array, Hash) between action ...
- Confluence 6 为空间赋予公共访问
希望为一个 Confluence 空间赋予公共访问权限,你必须为匿名用户赋予下面的权限: 在全站启用 可以使用(can use)权限,如上面描述的的. 相关的 空间权限.如果你希望你的一个空间可以公共 ...