RT 您所在的位置:网站首页 adc的初始化 RT

RT

2024-07-05 20:35| 来源: 网络整理| 查看: 265

文章目录 前言这篇文章主要是对rtthread studio 软件进行ADC设备驱动调试总结。 一、RT-Thread Settings配置二、CubeMX配置1.CubeMX的adc初始化配置2.CubeMX的adc初始化代码复制 三、代码程序编写1.宏定义添加2.用户代码编写 四、测试实验结果五、注意事项

前言 这篇文章主要是对rtthread studio 软件进行ADC设备驱动调试总结。 一、RT-Thread Settings配置

RT-Thread Settings配置,将adc驱动打开(具体打开步骤如下图所示)。 在这里插入图片描述

二、CubeMX配置 1.CubeMX的adc初始化配置

在这里插入图片描述

2.CubeMX的adc初始化代码复制

1)cubemx代码复制。 在这里插入图片描述 2)cubemx代码粘贴并且修改函数名。 在这里插入图片描述

三、代码程序编写 1.宏定义添加

1)在bord.h里面添加#define BSP_USING_ADC1。 在这里插入图片描述

2)在stm32f1xx_hal_conf_bak.h里面添加#define HAL_ADC_MODULE_ENABLED 在这里插入图片描述

2.用户代码编写

我是新建了一个user_adc.c文件,将用户代码写在该文件里面。通过 ADC 设备采样电压值并转换为数值。

在这里插入图片描述 用户代码为:

/* * 程序清单: ADC 设备使用例程 * 程序功能:通过 ADC 设备采样电压值并转换为数值。 * 示例代码参考电压为5V,转换位数为12位。 */ #include #include #define ADC_DEV_NAME "adc1" /* ADC 设备名称 */ #define ADC_DEV_CHANNEL 1 /* ADC 通道 */ #define REFER_VOLTAGE 500 /* 参考电压 5V,数据精度乘以100保留2位小数*/ #define CONVERT_BITS (1 adc_vol_sample(); rt_thread_mdelay(1000); } } void adc_vol_sample() { rt_adc_device_t adc_dev; rt_uint32_t value, vol; rt_err_t ret = RT_EOK; /* 查找设备 */ 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; } /* 使能设备 */ ret = rt_adc_enable(adc_dev, ADC_DEV_CHANNEL); /* 读取采样值 */ value = rt_adc_read(adc_dev, ADC_DEV_CHANNEL); Distance=(76762/(value-7))-4; rt_kprintf("the value is :%d \n", value); rt_kprintf("the Distance is :%d \n", Distance); /* 转换为对应电压值 */ 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); return ret; } int adc1_read_distance_sample(void) { rt_thread_t adc1_thread; adc1_thread = rt_thread_create("adc1", adc1_read_distance_entry, "pr_adc1", 1024, RT_THREAD_PRIORITY_MAX / 2, 20); if (adc1_thread != RT_NULL) { rt_thread_startup(adc1_thread); } return RT_EOK; } INIT_APP_EXPORT(adc1_read_distance_sample); 四、测试实验结果

打开adc读写线程,打印adc数据。INIT_APP_EXPORT(adc1_read_distance_sample); 在这里插入图片描述

在这里插入图片描述

五、注意事项

1)如果CubeMX配置后出现串口错误,需打开CubeMX,将串口进行初始化配置。 2)根据配置的ADC引脚去连接设备,例如本例程用的ADC1,通道1,对应IO口为PA1,硬件接线应接到PA1。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有