BearPi Std 板从入门到放弃 - 先天神魂篇(8)(RT-Thread ADC)

简介

RT-Thread ADC 使用,  基于
	开发板 : Bearpi Std(小熊派标准板)
	主芯片: STM32L431RCT6
	串口: Usart1
	DAC1: PA5, OUT2
	ADC1: PC2, IN3

步骤

创建项目

参考 [BearPi RT-Thread项目创建](https://blog.csdn.net/halo_hsuh/article/details/134931437?spm=1001.2014.3001.5502)

RT-Thread开启ADC支持

rtconfig.h 中加入
#define RT_USING_ADC

将DAC文件库加入Keil项目中

env 环境加指令  scons --target=mdk5 -s

CubeMX配置DAC1

双击打开 board\CubeMX_Config\CubeMX_Config.ioc, 开启ADC1 通道3输入

在这里插入图片描述

注册设备

board.h # 开启加入ADC1
#define BSP_USING_ADC
#define BSP_USING_ADC1
这里编译的时候会有报错, 解决是在drv_adc.c 加入头文件
	#include "drv_common.h" // 这里面包含了adc.h 

编译烧录

串口使用list device时候可以发现adc1设备了

在这里插入图片描述

用户代码使用adc

拷贝RT-Thread官方示例, 并修改为如下
/*
 * 程序清单: ADC 设备使用例程
 * 例程导出了 adc_sample 命令到控制终端
 * 命令调用格式:adc_sample
 * 程序功能:通过 ADC 设备采样电压值并转换为数值。
 *           示例代码参考电压为3.3V,转换位数为12位。
*/

#include <rtthread.h>
#include <rtdevice.h>

#define ADC_DEV_NAME        "adc1"      /* ADC 设备名称 */
#define ADC_DEV_CHANNEL     3           /* ADC 通道 */
#define REFER_VOLTAGE       330         /* 参考电压 3.3V,数据精度乘以100保留2位小数*/
#define CONVERT_BITS        (1 << 12)   /* 转换位数为12位 */

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;

    /* 查找设备 */
    adc_dev = (rt_adc_device_t)rt_device_find(ADC_DEV_NAME);
    if (adc_dev == RT_NULL)
    {
   
        rt_kprintf("[adc] 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);
    rt_kprintf("[adc] the value is :%d \n", value);

    /* 转换为对应电压值 */
    vol = value * REFER_VOLTAGE / CONVERT_BITS;
    rt_kprintf("[adc] the voltage is :%d.%02d \n", vol / 100, vol % 100);

    /* 关闭通道 */
    ret = rt_adc_disable(adc_dev, ADC_DEV_CHANNEL);

    return ret;
}
/* 导出到 msh 命令列表中 */
MSH_CMD_EXPORT(adc_vol_sample, adc voltage convert sample);

编译烧录

使用串口软件输入指令 adc_vol_sample 100 这个一百是转化值, 将转化成对应的模拟量

在这里插入图片描述

代码

完整项目代码

参考

BearPi Std 板从入门到放弃 - 引气入体篇(7)(DAC)

BearPi Std 板从入门到放弃 - 引气入体篇(8)(ADC)

RT-Thread 设备和驱动 - DAC 设备

RT-Thread 设备和驱动 - ADC 设备

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-19 09:10:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-19 09:10:03       106 阅读
  3. 在Django里面运行非项目文件

    2023-12-19 09:10:03       87 阅读
  4. Python语言-面向对象

    2023-12-19 09:10:03       96 阅读

热门阅读

  1. error: C2039: “qt_metacast“: 不是 “***“ 的成员

    2023-12-19 09:10:03       61 阅读
  2. 动态规划 - 1137.第N个泰波那契数(C#和C实现)

    2023-12-19 09:10:03       57 阅读
  3. python学习4

    2023-12-19 09:10:03       48 阅读
  4. 手机天线市场分析:预计2029年将达到576亿美元

    2023-12-19 09:10:03       59 阅读
  5. 《Effective C++》条款37

    2023-12-19 09:10:03       59 阅读
  6. 第18课 SQL入门之使用视图

    2023-12-19 09:10:03       74 阅读
  7. 65道Go基础高频题整理(附答案背诵)

    2023-12-19 09:10:03       52 阅读
  8. 2023.12.16力扣每日一题

    2023-12-19 09:10:03       69 阅读
  9. notebook入门使用教程

    2023-12-19 09:10:03       52 阅读
  10. 【PHP】TP5验证规则自定义

    2023-12-19 09:10:03       67 阅读
  11. MySQL! 一个开源的关系型数据库管理系统!

    2023-12-19 09:10:03       55 阅读
  12. 第五章 图论 邻接表存图

    2023-12-19 09:10:03       45 阅读
  13. 手动配置 kafka 用户密码,认证方式等的方式

    2023-12-19 09:10:03       56 阅读