当前位置: 首页 > news >正文

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

http://www.zskr.cn/news/117156.html

相关文章:

  • TestDisk数据恢复实战:从分区丢失到文件找回的完整指南
  • 盲盒抽赏小程序开发运营指南:从合规架构到百万盈利的全链路拆解
  • 使用 C# 将 DataTable 和 Excel 数据互转
  • 敏捷协作中的心理测试:消除团队沟通的隐藏BUG
  • 2025搭子经济风口:组局小程序开发落地、盈利模式与风险防控手册
  • 源网荷储充一体化平台:安科瑞EMS微电网能源管理系统介绍
  • 磁链观测器的探索之旅:从仿真到闭环代码实现
  • 33、Linux线程同步与互斥
  • 终极指南:macOS iSCSI启动器完整配置与使用详解
  • Taiga开源项目管理工具:2025年敏捷开发终极指南
  • SimpRead浏览器扩展图标终极适配指南:从16px到128px的完整解析
  • 【AI】免费的代价?Google AI Studio 使用指南与 Cherry Studio + MCP 实战教程
  • MCP概念和实践
  • 【tRPC-Go 框架】深度解析:特性、架构及与主流RPC框架对比
  • 【Go 语言】核心特性、基础语法及面试题
  • 线性自抗扰控制:包含线性跟踪微分器、扩张状态观测器及控制律的STM32F1 C代码与实践
  • 能控制计算机桌面的多模态AI agent框架
  • 3分钟免费拥有macOS精致鼠标指针:Windows和Linux完美适配指南
  • Matlab Simulink 基于自适应的永磁同步电机无位置传感器控制系统 以PMSM做为控制对像
  • 国自然科学基金本子拟解决关键问题与创新点,如何利用AI分别进行辅助?
  • NocoDB容器化部署架构深度解析:从单机到云原生演进路径
  • 【python实用小脚本-324】耗时2小时→0人工|电商运营必学的价格监控自动化方案(建议收藏)
  • 医疗软件合规性测试体系构建与实战解析
  • 多场景 Shell 脚本实例,搞定系统 / 日志 / 数据库 / 容器
  • Wan2.1-I2V-14B-480P:消费级硬件上的高效图像到视频生成技术
  • Blender版本管理终极指南:告别混乱的完整解决方案
  • 零门槛体验通义千问:FlashAI一键部署大模型全攻略
  • Vue3-Admin-TS:TypeScript版Vue3后台管理模板完整指南
  • 2025 年最新客服机器人品牌排名在这里! - 品牌策略主理人
  • 品牌排行榜2026年EOR名义雇主服务前8款,助力企业高效拓展全球市场