news 2026/7/1 6:16:35

STM32HAL库读取ADS1115驱动

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
STM32HAL库读取ADS1115驱动

先看这个芯片的原理图,其实很简单,一个i2c通信,一个RDY就绪线,需要注意的是ADDR引脚可以用来配置i2c从机地址

机地址是七位的,实际使用的时候需要注意左移1位,最后补一个读写位。

接下来我们看一下寄存器

转换寄存器便宜地址0x0000,16位用于存储转换后的电压值

配置寄存器,这个是关键

OS,状态位不用管

MUX,这个是重点,实际转换的值是AINp - AINn的数值,因此我们设置的时候一般是设置100 - 111之间

PGA,基准电压,转换是用于比较的基准电压

MODE,单词转换模式,或者连续转换模式

DR,采样速率,速率越高误差越大

上面四个都是默认配置不做介绍

知道了寄存器流程就很简单了,基本流程就是1.将要转换的通道写入寄存器,2.等待转换3.读取转换寄存器

代码如下,结尾我会提供源码

void ADS1115_config(soft_i2c_driver *soft_i2c_driver, uint8_t channel) { soft_i2c_WriteReg(soft_i2c_driver, ADS1115_REG_Config, ADS1115_Config_MSB | (channel << 4), ADS1115_Config_LSB); } uint16_t ADS1115_ReadADC(soft_i2c_driver *soft_i2c_driver) { return soft_i2c_ReadReg(soft_i2c_driver,ADS1115_REG_Conversion); } void ADS1115_ReadAllChannel(soft_i2c_driver *soft_i2c_driver, uint16_t data[]) { for(uint8_t i=0; i<4; i++) { ADS1115_config(soft_i2c_driver,i); HAL_Delay(10); data[i] = ADS1115_ReadADC(soft_i2c_driver); } } void ADS1115_VolConversion(float *vol_value,int16_t data[4],float base_vol) { for(int i=0; i<4; i++) { vol_value[i] = 1.0 * data[i] / 32768 * base_vol; } }

在以上代码中,我使用的是模拟i2c,读者也可以自己换成其他读写i2c的函数

ADS1115_config 配置要读写的通道,并且开始转换

ADS1115_ReadADC 读取转换寄存器的值

ADS1115_ReadAllChannel 读取四个通道的值,并且放到数组中

ads1115_volconversion 电压转换,将读取的数值转换成真是的电压

代码下载

https://download.csdn.net/download/qq_40170041/92470489?spm=1001.2014.3001.5503

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/30 11:39:05

OpenCVSharp:学习人脸检测例子

前言 OpenCVSharp关于人脸检测提供了两个例子&#xff0c;一个是使用级联分类器另一个是使用DNN模型。 使用级联分类器 级联分类器&#xff08;Cascade Classifier&#xff09;是计算机视觉中一种高效的目标检测方法&#xff0c;特别广泛应用于人脸检测。 在这个例子中使用到了…

作者头像 李华
网站建设 2026/7/1 10:42:42

2025搭子经济风口:组局小程序开发落地、盈利模式与风险防控手册

一、开发核心&#xff1a;合规筑基&#xff0c;场景化功能破局​组局搭子小程序开发需先解决 “安全信任” 与 “匹配效率” 两大核心痛点&#xff0c;再通过场景化功能构建壁垒。合规层面&#xff0c;必须集成实名认证 人脸识别 内容风控三重体系&#xff0c;用户注册需完成…

作者头像 李华
网站建设 2026/6/25 16:28:09

Arbess从基础到实践(20) - 集成GitHub+SonarQube实现Java项目自动化部署

Arbess 是一款开源免费的 CI/CD 工具&#xff0c;支持免费私有化部署&#xff0c;一键安装零配置。本文将详细介绍如何使用安装配置SonarQube、Arbess系统&#xff0c;使用流水线拉取GitHub源码、使用SonarQube代码扫描、构建安装包并进行主机部署。 1、GitHub 配置 本章节将…

作者头像 李华
网站建设 2026/7/1 2:28:07

构建未来测试力场:自动化测试工程师三维技能图谱

自动化测试的时代定位 截至2025年末&#xff0c;随着云原生、AI工程化的深度渗透&#xff0c;软件测试领域正经历着从"辅助验证"到"质量驱动"的范式转移。自动化测试工程师不再仅仅是脚本编写者&#xff0c;而是成为保障数字产品质量的核心工程师。本文将…

作者头像 李华
网站建设 2026/7/2 2:57:34

JUnit4参数化测试动态生成:告别重复代码的智能测试方案

JUnit4参数化测试动态生成&#xff1a;告别重复代码的智能测试方案 【免费下载链接】junit4 A programmer-oriented testing framework for Java. 项目地址: https://gitcode.com/gh_mirrors/ju/junit4 你是否厌倦了在测试类中编写大量重复的测试方法&#xff1f;当业务…

作者头像 李华