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

本文介绍X-CTR100控制器 DAC接口输出功能,X-CTR100具有一路1位DAC输出接口,可以输出0~3.3V电压,用于需要电压控制的设备。

原理

DAC 为数字/模拟转换模块,故名思议,它的作用就是把输入的数字编码,转换成对应的模拟电压输出,它的功能与ADC 相反。在常见的数字信号系统中,大部分传感器信

号被化成电压信号,而ADC 把电压模拟信号转换成易于计算机存储、处理的数字编码,由计算机处理完成后,再由DAC 输出电压模拟信号,该电压模拟信号常常用来驱动某些

执行器件,使人类易于感知。如音频信号的采集及还原就是这样一个过程。

STM32 具有片上DAC 外设,它的分辨率可配置为8 位或12 位的数字输入信号,具有两个DAC 输出通道,这两个通道互不影响,每个通道都可以使用DMA 功能,都具有出错

检测能力,可外部触发。

例程

连接DAC输入通道和ADC-J通道,控制DAC输出0.1V递增电压并通过ADC-J采集DAC输出的电压,串口显示。

硬件说明

硬件资源:

  • 串口UART1
  • DAC接口(LI)
  • ADC接口(LJ)

硬件连接:

使用MicroUSB数据线连接X-CTR100 COM接口。

使用杜邦线连接LI和LJ接口,将ADC和DAC连接在一起。

软件生态

X-SOFT软件生态,X-API文件如下。

ax_dac.c——X-CTR100 DAC数模转换源文件

ax_dac.h——X-CTR100 DAC数模转换头文件

X-API操作函数如下:

void AX_DAC_Init(void); //DAC初始化

void AX_DAC_SetVol(uint16_t vol); //DAC设置输出电压值

软件说明

本程序通过x变量递增100,实现电压0.1V递增,使用函数AX_DAC_SetVol()设置输出电压,并通过AX_ADC_GetVol()函数采集DAC输出电压,ADC使用AX_ADC_CH_J通道采集。

int main(void)

{

uint16_t tmp = 0;

//X-CTR100初始化

AX_Init(115200);

printf("***DAC电压输出例程***\r\n\r\n");

//模块初始化及配置

AX_DAC_Init();

AX_ADC_Init();

//X-API测试:DAC电压输出,并通过ADC -J通道采集显示

printf("*DAC电压输出测试\r\n");

printf("*DAC电压输出,并通过ADC-J通道采集显示\r\n");

printf("*请连接DAC输出和ADC-J通道到\r\n\r\n");

while (1)

{

tmp += 100; //输入电压递增0.1V

AX_DAC_SetVol(tmp);

printf("DAC输出电压:%8.2f ADC-J采集电压:%8.2f\r\n", (tmp*0.001), AX_ADC_GetVol(AX_ADC_CH_J));

//x大于3000(3V)后重新赋值为0

if (tmp>3000)

tmp = 0;

AX_Delayms(1000);

}

}

实现效果

连接DAC输入通道和ADC-J通道,连接实物及运行效果如下图所示。

总结

通过本文学习,可以掌握X-CTR100控制器 DAC输出功能。

转载于:https://www.cnblogs.com/xtark/p/9364324.html

玩转X-CTR100 l STM32F4 l DAC数字模拟转换相关推荐

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

    我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器 AD转换接口的使用, ...

  2. 玩转X-CTR100 l STM32F4 l DRV8825 A4988 步进电机控制

    我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器控制步进电机,实现步进 ...

  3. 玩转X-CTR100 l STM32F4 l PS2无线手柄

    我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] SONY的PS2无线手柄是索尼游戏机的遥控手柄,控制 ...

  4. 玩转X-CTR100 l STM32F4 l 基础例程printf、LED、蜂鸣器、拨码开关、位带操作

    我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器基础板载资源的使用,包 ...

  5. 玩转X-CTR100 l STM32F4 l DSP指令集性能测试

    我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器 DSP库的使用,对S ...

  6. 玩转X-CTR100 l STM32F4 l PS2无线手柄-4WD智能小车

    我造轮子,你造车,创客一起造起来!更多塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 前面已介绍X-CTR100控制器解码PS2无线手 ...

  7. 玩转X-CTR100 l STM32F4 l ESP8266串口WIFI模块

    我造轮子,你造车,创客一起造起来!更多塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ]- ESP8266是一款非常火的WIFI模块,性价 ...

  8. ls -l |wc -l命令多统计一行

    #ls -l |wc -l 注意:总用量也占用1行,所以统计出来的是14而不是13 其他网友提醒 #ls -l |wc -l 就统计实际的行,放大就看出效果 1和l不同

  9. 聊聊gcc参数中的-I, -L和-l

    http://blog.csdn.net/stpeace/article/details/49408665 在本文中, 我们来聊聊gcc中三个常见的参数, 也即-I, -L和-l 一. 先说 -I   ...

最新文章

  1. R语言筛选dataframe分组中值最大的行实战(Select the row with the maximum value in each group)
  2. python第三方库中函数调用_Python学习笔记(2)——Python的函数、模块、包和库...
  3. Asp.Net 上传大文件专题(3)--从请求流中获取数据并保存为文件[下]
  4. 好好学python · 字符串(find(),index(),split(),join(),strip(),replace())
  5. virtualenv模块使用
  6. 42所双一流大学图书馆公众号
  7. ABB伺服驱动调试(二)
  8. BCB中利用剪贴板复制粘贴
  9. 删除mac开机启动项
  10. mybatis处理批量数据插入怎么处理效率最高
  11. 攻略!嵌入式开发需要学习哪些内容?
  12. ios-swift-环信集成
  13. 关于各种校园网,局域网等出现IP识别错误(169IP开头)及其导致的联网失败,DNS错误的解决方法
  14. 洪水!(Flooded!)
  15. [IOS][已越狱]配合网易云音乐,使用Bridge快速免iTunes导入音乐到“音乐”
  16. 我的秋招经验分享(内附校招交流群)
  17. 敏感词过滤案例(Filter过滤器)
  18. js正则匹配手机号、身份证号
  19. Matlab Simulink 代数环相关问题
  20. 细说Linux的就业方向

热门文章

  1. TypeScript 初识
  2. JS学习笔记(一)DOM事件和监听
  3. jdk\willy\集群安装
  4. T-SQL Cstr函数
  5. 你准备好持续交付(CD)了吗?
  6. 助力南京银行打造国内首个分布式核心业务系统
  7. ASP.NET MVC4中@model使用多个类型实例的方法
  8. 五个超酷Linux命令
  9. Deep TEN: Texture Encoding Network
  10. Scrum 项目 7.0