AD采樣是應(yīng)用非常廣泛的一種模式,其中包括DMA方式和非DMA方式。
部分代碼如下:
#include
#include
#define ADC_DEV_NAME "adc0" /* ADC 設(shè)備名稱 */
#define ADC_DEV_CHANNEL 7 /* ADC 通道 */
#define REFER_VOLTAGE 330 /* 參考電壓 3.3V,數(shù)據(jù)精度乘以 100 保留 2 位小數(shù)*/
#define CONVERT_BITS (1 << 10) /* 轉(zhuǎn)換位數(shù)為 10 位 */
static int adc_vol_sample(int argc, char *argv[])
{
rt_adc_device_t adc_dev;
rt_uint32_t value, vol;
rt_err_t ret = RT_EOK;
/* 查找設(shè)備 */
adc_dev = (rt_adc_device_t)rt_device_find(ADC_DEV_NAME);
if (adc_dev == RT_NULL)
{
rt_kprintf("adc sample run failed! can't find %s device!\n", ADC_DEV_NAME);
return RT_ERROR;
}
/* 使能設(shè)備 */
ret = rt_adc_enable(adc_dev, ADC_DEV_CHANNEL);
/* 讀取采樣值 */
value = rt_adc_read(adc_dev, ADC_DEV_CHANNEL);
rt_kprintf("the value is :%d \n", value);
/* 轉(zhuǎn)換為對(duì)應(yīng)電壓值 */
vol = value * REFER_VOLTAGE / CONVERT_BITS;
rt_kprintf("the voltage is :%d.%02d \n", vol / 100, vol % 100);
/* 關(guān)閉通道 */
ret = rt_adc_disable(adc_dev, ADC_DEV_CHANNEL);
return ret;
}
/* 導(dǎo)出到 msh 命令列表中 */
MSH_CMD_EXPORT(adc_vol_sample, adc voltage convert sample);
最后做一個(gè)總結(jié),首先新建一個(gè) rt-thread studio 的工程,接著配置 rt-thread setting,使能 sdk 的 adc,配置完后 crtl+s 保存,接著在 application 文件夾下新建測(cè)試源文件,在源文件中添加官方的 adc 設(shè)備測(cè)試代碼,后面編譯好后下載到開發(fā)板就可以開始測(cè)量電壓了。
審核編輯:湯梓紅
-
adc
+關(guān)注
關(guān)注
98文章
6498瀏覽量
544640 -
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
6825瀏覽量
123331 -
AD采樣
+關(guān)注
關(guān)注
0文章
23瀏覽量
15989 -
RT-Thread
+關(guān)注
關(guān)注
31文章
1289瀏覽量
40129
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論