int count = 1; adc1_dev = (rt_adc_device_t)rt_device_find("adc1"); if (adc1_dev == RT_NULL) { rt_kprintf("adc sample run failed! can't find adc1 device!\n"); return RT_ERROR; } rt_adc_enable(adc1_dev, 2); while (count++) { int value = rt_adc_read(adc1_dev, ...
1rt_uint32_t rt_adc_read(rt_adc_device_t dev, rt_uint32_t channel); 1. 使用ADC 采样电压值的使用示例如下所示: 1#define ADC_DEV_NAME "adc1" /* ADC 设备名称 */ 2#define ADC_DEV_CHANNEL 5 /* ADC 通道 */ 3rt_adc_device_t adc_dev; /* ADC 设备句柄 */ 4rt_uint32_t valu...
totalvalue+=rt_adc_read(adc_ref,ADC_REF_CHANNEL); } /计算单位数字电压对应的模拟电压值/ voltage_vrefint_proportion=2001.2f/totalvalue; 之后我们对ADC3通道8进行采样,这里有两个点需要注意 登录后复制/* 读取采样值 */value = rt_adc_read(adc_dev, ADC_DEV_CHANNEL); rt_kprintf("the value is :...
adc_ref = (rt_adc_device_t) rt_device_find(ADC_REF_NAME); if (adc_ref == RT_NULL) { rt_kprintf("adc sample run failed!can't find %s device!n", ADC_REF_NAME); return RT_ERROR; } adc_dev = (rt_adc_device_t) rt_device_find(ADC_DEV_NAME); if (adc_dev == RT_NULL) ...
=rt_adc_read(adc_dev, ADC_DEV_CHANNEL);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);/* 关闭通道 */ret =rt_adc_disable(adc_dev, ADC_DEV_CHANNEL...
/* 使能设备 */rt_adc_enable(adc_dev,ADC_DEV_CHANNEL);/* 读取采样值 */value=rt_adc_read(adc_dev,ADC_DEV_CHANNEL);/* 转换为对应电压值 */vol=value*REFER_VOLTAGE/CONVERT_BITS;rt_kprintf("the voltage is :%d.%02d \n",vol/100,vol%100);/* 关闭通道 */rt_adc_disable(adc_dev,ADC_...
可以了解到drv_adc.c在HAL_Drivers目录下是存在的,只是它没有添加到整个RT-Thread工程里边来,只要开启BSP_USING_ADC宏即可;于是乎,编写Kconfig开启ADC支持,RT_USING_ADC是RT-Thread支持ADC的宏开关,代码如下: config BSP_USING_ADC bool "Enable ADC"
设备的子类 rt_adc_device 需要实现的ops 为 rt_adc_ops staticconststructrt_adc_ops stm_adc_ops ={ .enabled=stm32_adc_enabled, .convert=stm32_get_adc_value, }; 其中_adc_control 调用 stm32_adc_enabled, _adc_read 调用 stm32_get_adc_value; ...
ADC.read() 用于获取并返回当前 ADC 对象的采样值。例如当前采样值为 2048,对应设备的分辨率为 12位,当前设备参考电压为 3.3V ,则该 ADC 对象通道上实际电压值的计算公式为:采样值 * 参考电压 / (1 << 分辨率位数),即vol = 2048 / 4096 * 3.3 V = 1.15V。
2.3 读取ADC 通道采样值 读取ADC 通道采样值可通过如下函数完成: rt_uint32_t rt_adc_read(rt_adc_device_t dev, rt_uint32_t channel); 使用ADC 采样电压值的使用示例如下所示: #define ADC_DEV_NAME "adc1" /* ADC 设备名称 */ #define ADC_DEV_CHANNEL 5 /* ADC 通道 */ #define REFER...