前言
本文通過 RT-Thread Studio 配置 N32L406 片上外設 DAC 的功能,通過使用dac_open,dac_write,dac_close函數(shù)實現(xiàn)DAC的使用,不需要配置底層就能實現(xiàn)開發(fā)板PA4輸出指定的電壓值。
步驟
dac使用說明
打開N32L40x系列數(shù)據(jù)手冊,查看資源可以發(fā)現(xiàn)當前芯片支持1路DAC,引腳為PA4,在進行RTT配置的就是默認是PA4,不用進行通道選擇。
新建工程
打開rt-studio,基于開發(fā)板新建工程
點擊RT-Thread Setting,打開DAC設備框架
在芯片設備驅動中打開DAC驅動
drv_dac解讀
添加這一小節(jié)的原因是當前芯片只有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ù)組成,其中主要關注n32_set_dac_value(),如下所示:
在使用dac設備的時候,實際上rt_dac_write()函數(shù)中,通道值已經(jīng)不發(fā)生作用,在程序設計的時候只需關注設置的值就可以了。
dac設備通過這個操作集實現(xiàn)對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,數(shù)據(jù)精度乘以100保留2位小數(shù)*/
#define CONVERT_BITS (1 << 12) /* 轉換位數(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;
/ 查找設備 /
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);
代碼驗證
編譯并將程序下載到開發(fā)板中,打開終端
輸入help命令
將萬用表達到電壓檔,正極接到PA4, 輸入dac_vol_sample命令,查看終端輸出
查看萬用表測量到的電壓值,如下所示,輸出設置的電壓值。
總結
使用RT-Thread的設備驅動框架能很快的入手一款開發(fā)板,實現(xiàn)硬件底層與應用的分離,同時可以對接離線包,短時間內將開發(fā)板使用起來。
-
萬用表
+關注
關注
88文章
2076瀏覽量
127881 -
驅動器
+關注
關注
53文章
8259瀏覽量
146609 -
控制器
+關注
關注
112文章
16398瀏覽量
178544 -
dac
+關注
關注
43文章
2299瀏覽量
191209 -
RT-Thread
+關注
關注
31文章
1294瀏覽量
40233
發(fā)布評論請先 登錄
相關推薦
評論