ATJ2158 LRADC的使用

news/2024/10/30 13:26:15/

LRADC

  • LRADC对应引脚
  • LRADC采样电压范围及位数
  • 使用LRADC涉及到的驱动文件
  • 如何使用不同的LRADC通道

LRADC对应引脚

LRADC对应引脚备注
LRACDC1WIO0/WIO1
LRACDC2GPIO8/GPIO20
LRACDC3GPIO9/GPIO21
LRACDC4GPIO35
LRACDC5GPIO5
LRACDC6没有找到相应的引脚
LRACDC7GPIO63

LRADC采样电压范围及位数

LRADC 采样位数为14

在这里插入图片描述

使用LRADC涉及到的驱动文件

adckey_act.c 与 adc_act.c

如何使用不同的LRADC通道

  • 1:配置相应引脚功能
GPIO引脚使用下面函数 
acts_pinmux_set(CONFIG_ADCKEY_GPIO_NUM, ADCKEY_MFP_CFG);
WIO0/WIO1引脚使用下面函数 
sys_write32(CONFIG_ADCKEY_WIO_MFP, WIO0_CTL + (CONFIG_ADCKEY_WIO_NUM * 4));

在board.c中有配置
在这里插入图片描述

  • 2:设置通道数

使用adc_channel_setup(),这个函数设置通道号
在adckey_act.c中有设置
在这里插入图片描述

  • 3:读adc值

读一个通道的adc值

struct adc_sequence sequence = { 0, };uint8_t adc_buf[4];sequence.channels = BIT(channel_cfg.channel_id);sequence.buffer = &adc_buf[0];sequence.buffer_size = sizeof(adc_buf);int ret;ret = adc_read(adc, &sequence);ret = ((uint16_t)adc_buf[1] << 8) | adc_buf[0];SYS_LOG_INF("0x%x", ret);

读n个通道的adc值
假设3个通道,分别为LRADC1,LARDC2,LRADC3,对于每一个通道进行了前面的两个步骤

struct adc_sequence sequence = { 0, };uint8_t adc_buf[2*3];sequence.channels = BIT(PMUADC_ID_LRADC1) | BIT(PMUADC_ID_LRADC2) | BIT(PMUADC_ID_LRADC3);sequence.buffer = &adc_buf[0];sequence.buffer_size = sizeof(adc_buf);int ret;ret = adc_read(adc, &sequence);ret = ((uint16_t)adc_buf[1] << 8) | adc_buf[0];SYS_LOG_INF("0x%x", ret);

一个通道需要两个字节来存储,所以adc_buf的大小为2*通道数

Adckey_act.c中adc_read()这个函数实际是调用的是adc_act.c中的pmuadc_read()


http://www.ppmy.cn/news/9802.html

相关文章

从编译到可执行,eBPF 加速容器网络的原理分析 | 龙蜥技术

编者按&#xff1a;eBPF(extended Berkeley Packet Filter) 是一种可以在 Linux 内核中运行用户编写的程序&#xff0c;而不需要修改内核代码或加载内核模块的技术。简单说&#xff0c;eBPF 让 Linux 内核变得可编程化了。本文整理自龙蜥大讲堂第 57 期&#xff0c;浪潮信息 SE…

数据库和SQL介绍

数据库管理系统&#xff08;数据库软件)那么如何实现这种数据库形式的数据管理呢?我们需要借助:数据库管理系统&#xff0c;也就是常说的数据库软件。数据库软件是非常多的&#xff0c;常见的有:这些软件都能实现︰管理库﹑管理表、基于表来管理数据数据库和SQL的关系数据库是…

11 个非常实用的 Python 和 Shell 拿来就用脚本实例!

我工作中用到的几个脚本&#xff0c;主要分为&#xff1a;Python和Shell两个部分。 Python 脚本部分实例&#xff1a;企业微信告警、FTP 客户端、SSH 客户端、Saltstack 客户端、vCenter 客户端、获取域名 ssl 证书过期时间、发送今天的天气预报以及未来的天气趋势图&#xff…

<Python的函数(1)>——《Python》

目录 1. 函数 2. 语法格式 2.1 创建函数/定义函数 ​2.2 调用函数/使用函数 3. 函数参数 4. 函数返回值 5. 变量作用域 后记&#xff1a;●由于作者水平有限&#xff0c;文章难免存在谬误之处&#xff0c;敬请读者斧正&#xff0c;俚语成篇&#xff0c;恳望指教&…

手写RPC框架04-过滤器模块实现

源代码地址&#xff1a;https://github.com/lhj502819/IRpc/tree/v5 系列文章&#xff1a; 注册中心模块实现路由模块实现序列化模块实现过滤器模块实现自定义SPI机制增加框架的扩展性的设计与实现 为什么需要过滤器&#xff1f; 目前整个RPC框架的功能基本已经齐全了&…

【蓝桥杯基础题】2021年省赛填空题—卡片

&#x1f451;专栏内容&#xff1a;蓝桥杯刷题⛪个人主页&#xff1a;子夜的星的主页&#x1f495;座右铭&#xff1a;前路未远&#xff0c;步履不停 目录一、题目背景二、题目描述三、题目分析1.检查思路2.思路优化四、代码汇总1.C语言代码2. C代码3.运行结果五、总结1.枚举思…

美团开放平台SDK自动生成技术与实践

总第549篇2023年 第001篇美团开放平台为整个美团提供了20业务场景的开放API&#xff0c;为了使开发者能够快速且安全的接入美团开放平台&#xff0c;美团开放平台提供了多种语言的SDK来提高开发者的接入效率。本文介绍了美团开放平台如何自动生成SDK代码的相关技术实现方案&…

GO——函数(二)

函数匿名函数可变参数Deferred函数Panic异常Recover捕获异常匿名函数 拥有函数名的函数只能在包级语法块中被声明&#xff0c;通过函数字面量&#xff0c;我们可绕过这一限制&#xff0c;在任何表达式中表示一个函数值。 函数字面量的语法和函数声明相似&#xff0c;区别在于…