当前位置: 首页 > 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.cnnetsun.cn/news/112743.html

相关文章:

  • 【智能聊天助手部署教程 (基于 Streamlit + Ollama)】
  • 好写作AI第二大脑:当研究灵感不再碎片化,你的“学术外脑”已上线
  • 好写作AI第二大脑:当研究灵感不再碎片化,你的“学术外挂”已上线
  • 守护代码世界的守门人——软件测试团队心理健康白皮书
  • PinWin窗口置顶工具:提升Windows多任务效率的终极指南
  • Sheet-to-Doc:用Excel数据和Word模板自动生成文档
  • 27岁,转行网络安全,是这辈子最成功的一件事......_27岁开始搞网安好吗
  • 基于 OpenCV C# 的直线卡尺工具源码分享
  • FunASR多说话人识别终极指南:从实战到深度解析
  • SpringAI基于pgvector存储向量
  • 15天零基础打造Android视频录制终极方案:基于FFmpeg的微信级体验完整实现
  • 终极指南:macOS iSCSI启动器完整配置与使用详解
  • 【计算机毕业设计案例】基于SpringBoot+微信小程序的智能在线预约挂号系统基于springboot+微信小程序的智能医疗管理系统设计与实现(程序+文档+讲解+定制)
  • 【计算机毕业设计案例】基于springboot+微信小程序的校园活动管理系统设计与实现在线活动发布、报名管理与学生互动平台(程序+文档+讲解+定制)
  • HMC218BMS8GETR,3.5-8 GHz GaAs MMIC双平衡混频器, 现货库存
  • 直流电机控制仿真:Matlab/Simulink 实现
  • 如何用Charticulator轻松制作专业图表
  • 俄罗斯服务器常见故障汇总及排查方法
  • Seed-VR2:突破性AI视频增强技术,6GB显存实现专业级画质处理
  • 3分钟让你的Qt应用颜值翻倍:10款专业QSS模板免费使用指南
  • AI视频生成新纪元:5步掌握Wan2.2模型实战技巧
  • Stable Diffusion WebUI Forge技术架构深度解析:PyTorch如何驱动AI绘画革命
  • 合规即代码的延伸:国产 DevOps 平台如何利用平台扩展能力,自动验证信创基础设施的配置合规性
  • 基于MATLAB的Kmeans自动寻找最佳聚类中心App——简单操作实现手肘法与聚类分析
  • 2026年学大模型,别乱读书!这13本“硬核书单”就是你的高效知识地图,啃完体系自成
  • Wan2.1 GP视频生成:新手快速上手AI视频制作指南
  • 【Go 语言】核心特性、基础语法及面试题
  • 能控制计算机桌面的多模态AI agent框架
  • DeeplxFile终极指南:免费解锁无限制文件翻译的完整教程
  • Iridescent:Day27