前言
本文通過 RT-Thread Studio 配置 N32L406 片上外設(shè) DAC 的功能,通過使用dac_open,dac_write,dac_close函數(shù)實現(xiàn)DAC的使用,不需要配置底層就能實現(xiàn)開發(fā)板PA4輸出指定的電壓值。
步驟
dac使用說明
打開N32L40x系列數(shù)據(jù)手冊,查看資源可以發(fā)現(xiàn)當(dāng)前芯片支持1路DAC,引腳為PA4,在進(jìn)行RTT配置的就是默認(rèn)是PA4,不用進(jìn)行通道選擇。
新建工程
打開rt-studio,基于開發(fā)板新建工程
點(diǎn)擊RT-Thread Setting,打開DAC設(shè)備框架
在芯片設(shè)備驅(qū)動中打開DAC驅(qū)動
drv_dac解讀
添加這一小節(jié)的原因是當(dāng)前芯片只有1路DAC,后面編程需要用到,打開drv_dac.c文件。
共由5個函數(shù)組成,分別是n32_dac_init(),n32_dac_enable(),n32_dac_disable(),n32_set_dac_value(),以及rt_hw_dac_init()函數(shù)組成,其中主要關(guān)注n32_set_dac_value(),如下所示:
在使用dac設(shè)備的時候,實際上rt_dac_write()函數(shù)中,通道值已經(jīng)不發(fā)生作用,在程序設(shè)計的時候只需關(guān)注設(shè)置的值就可以了。
dac設(shè)備通過這個操作集實現(xiàn)對DAC的控制
測試代碼
在applications下新建test_dac.c,添加以下代碼
#include
#include
#include
#define DAC_DEV_NAME "dac" /* DAC 設(shè)備名稱 /
#define DAC_DEV_CHANNEL 0 / DAC 通道 /
#define REFER_VOLTAGE 330 / 參考電壓 3.3V,數(shù)據(jù)精度乘以100保留2位小數(shù)*/
#define CONVERT_BITS (1 << 12) /* 轉(zhuǎn)換位數(shù)為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;
/ 查找設(shè)備 /
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);
/ 設(shè)置輸出值 /
//value = atoi(argv[1]);
value = 2000;
rt_dac_write(dac_dev, DAC_DEV_CHANNEL, value);
rt_kprintf("the value is :%d n", value);
/ 轉(zhuǎn)換為對應(yīng)電壓值 /
vol = value * REFER_VOLTAGE / CONVERT_BITS;
rt_kprintf("the voltage is :%d.%02d n", vol / 100, vol % 100);
/ 延時查看效果,關(guān)閉通道后無輸出 /
rt_thread_mdelay(5000);
/ 關(guān)閉通道 /
ret = rt_dac_disable(dac_dev, DAC_DEV_CHANNEL);
return ret;
}
/ 導(dǎo)出到 msh 命令列表中 */
MSH_CMD_EXPORT(dac_vol_sample, dac voltage convert sample);
代碼驗證
編譯并將程序下載到開發(fā)板中,打開終端
輸入help命令
將萬用表達(dá)到電壓檔,正極接到PA4, 輸入dac_vol_sample命令,查看終端輸出
查看萬用表測量到的電壓值,如下所示,輸出設(shè)置的電壓值。
總結(jié)
使用RT-Thread的設(shè)備驅(qū)動框架能很快的入手一款開發(fā)板,實現(xiàn)硬件底層與應(yīng)用的分離,同時可以對接離線包,短時間內(nèi)將開發(fā)板使用起來。
-
萬用表
+關(guān)注
關(guān)注
87文章
2008瀏覽量
126377 -
驅(qū)動器
+關(guān)注
關(guān)注
51文章
7997瀏覽量
145007 -
控制器
+關(guān)注
關(guān)注
112文章
15879瀏覽量
175344 -
dac
+關(guān)注
關(guān)注
43文章
2226瀏覽量
190432 -
RT-Thread
+關(guān)注
關(guān)注
31文章
1239瀏覽量
39427
發(fā)布評論請先 登錄
相關(guān)推薦
評論