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

前言
本文通过 rt-thread studio 配置 n32l406 片上外设 dac 的功能,通过使用dac_open,dac_write,dac_close函数实现dac的使用,不需要配置底层就能实现开发板pa4输出指定的电压值。
步骤
dac使用说明
打开n32l40x系列数据手册,查看资源可以发现当前芯片支持1路dac,引脚为pa4,在进行rtt配置的就是默认是pa4,不用进行通道选择。
新建工程
打开rt-studio,基于开发板新建工程
点击rt-thread setting,打开dac设备框架
在芯片设备驱动中打开dac驱动
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()函数中,通道值已经不发生作用,在程序设计的时候只需关注设置的值就可以了。
dac设备通过这个操作集实现对dac的控制
测试代码
在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);
代码验证
编译并将程序下载到开发板中,打开终端
输入help命令
将万用表达到电压档,正极接到pa4, 输入dac_vol_sample命令,查看终端输出
查看万用表测量到的电压值,如下所示,输出设置的电压值。
总结
使用rt-thread的设备驱动框架能很快的入手一款开发板,实现硬件底层与应用的分离,同时可以对接离线包,短时间内将开发板使用起来。

卡萨帝:不是盯着市场份额,而是盯着用户需求
全力倾注人工智能和互联网 富士通出售手机业务
联手5G,LPWAN正在成为智慧城市无线连接中的新势力
与君分享 如何保护笔记本光驱
业余电台2m波4单元方框无线
通过RT-Thread Studio配置N32L406片上外设DAC的功能
ZigBee的应用领域有哪些,在我国的应用情况如何
罗永浩:小米6差强人意,最后还得看我的坚果Pro
激光焊接机激光束的能量特性
停车场加入rfid技术会怎样
稳懋斥巨资于南科建厂,功率放大器产能提升两倍
【技术分享】学好开发板,GPIO使用是关键!先楫HPM6750系列试用初体验
Vivo正在开发其最近推出的V20智能手机的后继产品
铅酸电池充放电保护电路图
关于MLCC陶瓷电容详解,简单易懂
树莓派3型号B初学者指南
华为mate10明天发布:配置,外观,售价提前看
水玻璃泡花碱模数技术数据
未来还有能取代锂电池的电池吗?
创意水晶吊灯diy教程