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

相关文章:

  • 测试决策的心理因素:在认知偏差与专业判断间寻找平衡
  • 完整教程:SQL常用语句解析:从查询到操作
  • 上海专业做室外防水 选芮生建设 14年经验守护建筑外墙屋顶不漏 - shruisheng
  • 3个关键步骤解决JimuReport报表组件依赖配置难题
  • FPGA在AI时代的角色重塑:硬件可重构性与异构计算的完美结合
  • 上海防水补漏上门维修服务哪家好?认准芮生建设,14年专业团队守护安居 - shruisheng
  • 守护代码世界的守门人——软件测试团队心理健康白皮书
  • Arbess从基础到实践(20) - 集成GitHub+SonarQube实现Java项目自动化部署
  • 突破与变革:2026年AI领域的技术创新与新机会
  • Phi-3模型部署教程:从入门到实战应用
  • Arbess从基础到实践(21) - 集成GitLab+PostIn实现Go项目自动化部署并执行接口测试用例
  • 【计算机毕业设计案例】基于SpringBoot+微信小程序的智能在线预约挂号系统基于springboot+微信小程序的智能医疗管理系统设计与实现(程序+文档+讲解+定制)
  • SeedVR2视频修复模型实战部署与性能优化指南
  • AI学习机是智商税吗?实测告诉你真相+2025年推荐清单 - 品牌测评鉴赏家
  • GEO优化实战指南:如何让品牌在AI搜索中被优先引用
  • 使用格子玻尔兹曼方法(LBM)模拟液滴分裂的伪势模型Matlab程序
  • AI智能体 - A2A协议
  • 构建可测试的代码:开发者的质量守护之道
  • Cellpose-SAM细胞分割工具:从入门到精通的全流程指南 [特殊字符]
  • GroundingDINO配置实战指南:5分钟掌握两大模型核心差异
  • OpenUSD工具链:usdview与命令行工具完全指南
  • 全网热议!2026年人力资源解决方案EOR名义雇主服务品牌排行榜,解决企业用工难题
  • MiMo-V2-Flash
  • Docker容器Redisson日志优化终极指南:多维度解决方案
  • 九尾狐AI企业增长白皮书:AI驱动时代下的获客破局之道
  • 国内首个!千问APP接入万相2.6,实现“角色合拍”能力
  • 必看!2026年EOR名义雇主服务品牌排行榜:助力企业灵活用工与业务扩张
  • 万字长文!Agent及其主流框架终极指南(附对比图),好Agent的标准:自己想、自己干、自己复盘!
  • 通义千问本地部署:5分钟快速搭建个人AI助手完整教程
  • Valetudo扫地机器人选购终极指南:47款机型全解析