0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

通过RT-Thread Studio配置N32L406片上外设DAC的功能

冬至子 来源:UWPU_1321 作者:UWPU_1321 2023-08-15 14:32 次阅读

前言
本文通过 RT-Thread Studio 配置 N32L406 片上外设 DAC 的功能,通过使用dac_open,dac_write,dac_close函数实现DAC的使用,不需要配置底层就能实现开发板PA4输出指定的电压值。

步骤
dac使用说明
打开N32L40x系列数据手册,查看资源可以发现当前芯片支持1路DAC,引脚为PA4,在进行RTT配置的就是默认是PA4,不用进行通道选择。

1.jpg

新建工程
打开rt-studio,基于开发板新建工程

1.jpg

点击RT-Thread Setting,打开DAC设备框架

1.jpg

在芯片设备驱动中打开DAC驱动

1.jpg

drv_dac解读
添加这一小节的原因是当前芯片只有1路DAC,后面编程需要用到,打开drv_dac.c文件。
共由5个函数组成,分别是n32_dac_init(),n32_dac_enable(),n32_dac_disable(),n32_set_dac_value(),以及rt_hw_dac_init()函数组成,其中主要关注n32_set_dac_value(),如下所示:
在使用dac设备的时候,实际上rt_dac_write()函数中,通道值已经不发生作用,在程序设计的时候只需关注设置的值就可以了。

1.jpg

dac设备通过这个操作集实现对DAC的控制

1.jpg

测试代码
在applications下新建test_dac.c,添加以下代码

#include
#include
#include
#define DAC_DEV_NAME "dac" /* DAC 设备名称 /
#define DAC_DEV_CHANNEL 0 /
DAC 通道 /
#define REFER_VOLTAGE 330 /
参考电压 3.3V,数据精度乘以100保留2位小数*/
#define CONVERT_BITS (1 << 12) /* 转换位数为12位 */
static int dac_vol_sample(int argc, char argv[])
{
rt_dac_device_t dac_dev;
rt_uint32_t value, vol;
rt_err_t ret = RT_EOK;
/
查找设备 /
dac_dev = (rt_dac_device_t)rt_device_find(DAC_DEV_NAME);
if (dac_dev == RT_NULL)
{
rt_kprintf("dac sample run failed! can't find %s device!n", DAC_DEV_NAME);
return RT_ERROR;
}
/
打开通道 /
ret = rt_dac_enable(dac_dev, DAC_DEV_CHANNEL);
/
设置输出值 /
//value = atoi(argv[1]);
value = 2000;
rt_dac_write(dac_dev, DAC_DEV_CHANNEL, value);
rt_kprintf("the value is :%d n", value);
/
转换为对应电压值 /
vol = value * REFER_VOLTAGE / CONVERT_BITS;
rt_kprintf("the voltage is :%d.%02d n", vol / 100, vol % 100);
/
延时查看效果,关闭通道后无输出 /
rt_thread_mdelay(5000);
/
关闭通道 /
ret = rt_dac_disable(dac_dev, DAC_DEV_CHANNEL);
return ret;
}
/
导出到 msh 命令列表中 */
MSH_CMD_EXPORT(dac_vol_sample, dac voltage convert sample);

代码验证
编译并将程序下载到开发板中,打开终端

1.jpg

输入help命令

1.jpg

万用表达到电压档,正极接到PA4, 输入dac_vol_sample命令,查看终端输出

1.jpg

查看万用表测量到的电压值,如下所示,输出设置的电压值。

1.jpg

总结
使用RT-Thread的设备驱动框架能很快的入手一款开发板,实现硬件底层与应用的分离,同时可以对接离线包,短时间内将开发板使用起来。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 万用表
    +关注

    关注

    88

    文章

    2071

    浏览量

    127616
  • 驱动器
    +关注

    关注

    52

    文章

    8227

    浏览量

    146258
  • 控制器
    +关注

    关注

    112

    文章

    16334

    浏览量

    177815
  • dac
    dac
    +关注

    关注

    43

    文章

    2291

    浏览量

    190980
  • RT-Thread
    +关注

    关注

    31

    文章

    1285

    浏览量

    40089
收藏 人收藏

    评论

    相关推荐

    通过RT-Thread Studio配置AB32VG1外设GPIO引脚控制RGB彩灯

    本篇文章通过 RT-Thread Studio 配置 AB32VG1
    的头像 发表于 11-03 17:38 1.3w次阅读
    <b class='flag-5'>通过</b><b class='flag-5'>RT-Thread</b> <b class='flag-5'>Studio</b><b class='flag-5'>配置</b>AB32VG1<b class='flag-5'>片</b><b class='flag-5'>上</b><b class='flag-5'>外设</b>GPIO引脚控制RGB彩灯

    RT-Thread Studio配置rtthread CANFD驱动来控制M3508电机

    本文旨在RT-Thread Studio配置rtthread CANFD驱动来控制M3508电机,不涉及任何原理 开发环境:RT-Thread
    发表于 10-08 11:44 1319次阅读
    在<b class='flag-5'>RT-Thread</b> <b class='flag-5'>Studio</b><b class='flag-5'>上</b><b class='flag-5'>配置</b>rtthread CANFD驱动来控制M3508电机

    RT-Thread Studio 使用 RT-Thread Nano

    本文介绍了如何在 RT-Thread Studio 使用 RT-Thread Nano,并以创建 stm32f103RB 的 Nano 工程为例。准备工作安装
    发表于 05-18 15:59

    使用RT-Thread Studio开发各个外设的驱动的操作方法

    Studio 可以通过在board.h中配置引脚,实现初始化功能如果感觉RT-Thread Studi
    发表于 03-21 10:44

    基于RT-Thread Studio的ADC外设使用方案介绍

    ART-Pi,创建模板工程。2、基于RT-Thread Studio 使用STM32单片机的ADC外设一、工程建立 工程建立和时钟配置这里不再赘述,可以看上一篇文章,在 PWM 中详细
    发表于 03-28 16:57

    RT-Thread Studio 主要亮点功能

    RT-Thread Studio V1.1.0 快速上手体验 RT-Thread Studio 主要包括工程创建和管理,代码编辑,SDK管理器,RT
    的头像 发表于 06-19 11:45 5890次阅读

    RT-Thread Studio快速配置GPIO进行点灯

    本章通过RT-Thread Studio配置AB32VG1
    发表于 12-14 18:44 10次下载
    <b class='flag-5'>RT-Thread</b> <b class='flag-5'>Studio</b>快速<b class='flag-5'>配置</b>GPIO进行点灯

    RT-Thread STM32 配置系统时钟(使用外部晶振)

    RT-Thread STM32 配置系统时钟开发环境芯片:STM32F103RCT6RT-Thread Studio: V1.0.6(现在已经更新到1.1.3,由于本人使用RTT开发已
    发表于 12-14 18:45 14次下载
    <b class='flag-5'>RT-Thread</b> STM32 <b class='flag-5'>配置</b>系统时钟(使用外部晶振)

    RT-Thread Studio配置连接WIFI模块

    通过 RT-Thread Studio 配置 AB32VG1
    发表于 12-20 19:11 16次下载
    <b class='flag-5'>RT-Thread</b> <b class='flag-5'>Studio</b><b class='flag-5'>配置</b>连接WIFI模块

    RT-Thread Studio驱动SD卡

    RT-Thread Studio驱动SD卡前言一、创建基本工程1、创建Bootloader2、创建项目工程二、配置RT-Thread Settings三、代码分析1.引入库2.读入数据
    发表于 12-27 19:13 20次下载
    <b class='flag-5'>RT-Thread</b> <b class='flag-5'>Studio</b>驱动SD卡

    如何通过RT-Thread Studio配置外设UART

    通过 RT-Thread Studio 配置 AB32VG1
    的头像 发表于 08-21 09:53 2131次阅读
    如何<b class='flag-5'>通过</b><b class='flag-5'>RT-Thread</b> <b class='flag-5'>Studio</b><b class='flag-5'>配置</b><b class='flag-5'>片</b><b class='flag-5'>上</b><b class='flag-5'>外设</b>UART

    RT-Thread Studio配置外设GPIO的引脚

    通过 RT-Thread Studio 配置 AB32VG1
    的头像 发表于 08-21 09:49 2967次阅读
    <b class='flag-5'>RT-Thread</b> <b class='flag-5'>Studio</b><b class='flag-5'>配置</b><b class='flag-5'>片</b><b class='flag-5'>上</b><b class='flag-5'>外设</b>GPIO的引脚

    基于RT-Thread Studio学习

    前期准备:从官网下载 RT-Thread Studio,弄个账号登陆,开启rt-thread学习之旅。
    的头像 发表于 05-15 11:00 3932次阅读
    基于<b class='flag-5'>RT-Thread</b> <b class='flag-5'>Studio</b>学习

    使用RT-Thread Studio进行智能家居终端的设计

    本次方案基于星火一号开发板开发,使用RT-Thread Studio进行工程创建,代码编辑,RT-Thread配置,调试配置,程序下载等
    的头像 发表于 07-28 16:41 1888次阅读
    使用<b class='flag-5'>RT-Thread</b> <b class='flag-5'>Studio</b>进行智能家居终端的设计

    试用RT-Thread Studio(VSCode)

    想尝试RT-Thread studio (VSCode),先下载安装VSCode,再搜索RT-Thread
    的头像 发表于 10-12 10:58 1086次阅读
    试用<b class='flag-5'>RT-Thread</b> <b class='flag-5'>Studio</b>(VSCode)