SeanLib系列函数库-ADS1118
查看其它库函数说明请点击此处跳转到SeanLib主页1. 本篇内容ADS1118是一款16位模数转换器采用SPI接口通信支持2路差分信号测量或4路单端信号测量内置参考电源集成片内温度传感器内置可编程增益放大器PGA。本篇详细介绍这套面向ADS1118的C语言驱动库的使用方法。2. 使用说明要使用该库请将ADS1118.lib和ADS1118.h添加到项目工程中另外需要在SeanLib.c中实现Sean_Send和Sean_SendRecv两个外部函数。2.1 头文件说明头文件中定义了一些枚举类型以及一个ADS1118设备结构体如下typedefenum//输入多路开关选项{ADS1118_MUX_P0_N1,//000 AINP is AIN0 and AINN is AIN1 (default)ADS1118_MUX_P0_N3,//001 AINP is AIN0 and AINN is AIN3ADS1118_MUX_P1_N3,//010 AINP is AIN1 and AINN is AIN3ADS1118_MUX_P2_N3,//011 AINP is AIN2 and AINN is AIN3ADS1118_MUX_P0_NG,//100 AINP is AIN0 and AINN is GNDADS1118_MUX_P1_NG,//101 AINP is AIN1 and AINN is GNDADS1118_MUX_P2_NG,//110 AINP is AIN2 and AINN is GNDADS1118_MUX_P3_NG//111 AINP is AIN3 and AINN is GND}ADS1118_MUX_t;typedefenum//增益选项{ADS1118_PGA_6144,//000 FSR is ±6.144 VADS1118_PGA_4096,//001 FSR is ±4.096 VADS1118_PGA_2048,//010 FSR is ±2.048 V (default)ADS1118_PGA_1024,//011 FSR is ±1.024 VADS1118_PGA_512,//100 FSR is ±0.512 VADS1118_PGA_256//101 FSR is ±0.256 V}ADS1118_PGA_t;typedefenum//转换模式选项{ADS1118_Mode_Contious,//连续转换模式ADS1118_Mode_Signle//单次转换模式}ADS1118_MODE_t;typedefenum//数据速率选项{ADS1118_DR_8SPS,ADS1118_DR_16SPS,ADS1118_DR_32SPS,ADS1118_DR_64SPS,ADS1118_DR_128SPS,ADS1118_DR_250SPS,ADS1118_DR_475SPS,ADS1118_DR_860SPS}ADS1118_DR_t;typedefenum//测试模式选项{ADS1118_TSMODE_ADC,//ADC模式ADS1118_TSMODE_Tmpr//内部温度传感器模式}ADS1118_TSMODE_t;typedefstruct//定义一个ADS1118芯片的器件类型{unsignedintTag;//提供一个变量可存储一些额外的信息如设备类型unsignedintCS_Pin;//指定该芯片使用的CS引脚的BITBAND地址unsignedintDRdy_Pin;//指定该芯片使用的数据就绪引脚的BITBAND地址void*ComDev;//提供一个万能指针可存放与该器件通讯的SPI设备指针struct//配置寄存器类型定义{unsignedcharPULLUP:1;//设置是否使能DRDY引脚的内部上拉ADS1118_TSMODE_t TS_MODE:1;//测试选项选择测量ADC还是内部温度传感器ADS1118_DR_t DR:3;//数据速率设置ADS1118_MODE_t MODE:1;//器件测试模式设置选择连续转换还是单次转换ADS1118_PGA_t PGA:3;//增益配置ADS1118_MUX_t MUX:3;//多路开关配置}Config;//器件配置字void(*Start)(void);//函数指针启动转换float(*ReadData)(void);//函数指针读转换结果内部温度模式时返回温度值ADC模式时返回电压值(mV)}ADS1118_t;2.2 创建设备并配置参数使用如下函数创建设备指针/******************************************************************************* * 功 能: 创建ADS器件设备指针 * 参 数: * PinAddr_CS 片选引脚如 BITBAND_ADDR(GPIOD-ODR, 5) * 返回值创建成功返回设备指针否则返回空指针NULL *******************************************************************************/externADS1118_t*NewADS1118(unsignedintPinAddr_CS);示例代码voidADS_Init(void){Tmpr1NewADS1118(SPI_CS1);if(Tmpr1NULL){Error_Handle(0,Creat Tmpr1 failed!\r\n);}Tmpr1-ComDevhspi4;Tmpr1-Config.PULLUP1;Tmpr1-Config.MODEADS1118_Mode_Signle;Tmpr2NewADS1118(SPI_CS2);if(Tmpr2NULL){Error_Handle(0,Creat Tmpr2 failed!\r\n);}Tmpr2-ComDevhspi4;Tmpr2-Config.PULLUP1;Tmpr2-Config.MODEADS1118_Mode_Signle;}MSH_INIT_EXPORT(0,ADS_Init,Creat ADS1118 chip);一些使用过程中不需要修改的配置可以在初始化时直接写好。2.3 启动转换并读取结果ADS1118仅通过两个字节的配置字完成所有设置、启动转换、读取结果。启动转换请直接调用Start方法启动转换但需要提前设置好模式、通道、增益等参数等待转换完成将CS拉低若转换完成DRdy引脚会拉低调用ReadData方法获取数据需要注意的是ReadData函数的返回值当测量模式选择的是内部温度传感器即芯片温度时返回值为温度值当测量模式选择的是ADC即外部输入的模拟量时返回结果为外部输入的电压值单位为mV。3. 例程建议的等待转换完成方法voidWaitForFinish(ADS1118_t*Dev){unsignedintTick_Start;*(unsignedint*)(Dev-CS_Pin)0;//拉低CS引脚osDelay(pdMS_TO_TICKS(20));//建议释放CPU一小段时间后再死等时间长度根据数据速率设置Tick_StartHAL_GetTick();while(HAL_GetTick()-Tick_Start5)//等待DOUT给出数据有效信号-从高变低{if(ADS_RDY0)break;//DRdy引脚拉低时表示转换已完成}}测量芯片温度floatGet_ChipTmpr(ADS1118_t*Dev){Dev-Config.TS_MODEADS1118_TSMODE_Tmpr;//内部温度传感器模式Dev-Config.DRADS1118_DR_64SPS;//设置数据速率Dev-Start();WaitForFinish(Dev);returnDev-ReadData();}测试外部输入信号floatGet_Voltage(ADS1118_t*Dev,ADS1118_MUX_t Channel){Dev-Config.TS_MODEADS1118_TSMODE_ADC;//ADC模式Dev-Config.DRADS1118_DR_64SPS;//设置数据速率Dev-Config.PGAADS1118_PGA_256;//设置增益Dev-Config.MUXChannel;//设置转换通道Dev-Start();WaitForFinish(Dev);returnDev-ReadData();}测量K型热电偶的温度floatTmpr,Tmpr_Chip;Tmpr_ChipGet_ChipTmpr(Tmpr1);//获取芯片温度作为冷端温度TmprGet_Voltage(Tmpr1,ADS1118_MUX_P2_N3);//配置通道并启动一次转换TmprThermo_Calc_Tmpr(THERMO_TYPE_K,Tmpr_Chip,Tmpr);//计算热电偶的温度

相关新闻

STM32国密算法实战:SM2/SM3/SM4在嵌入式安全通信中的集成与应用

STM32国密算法实战:SM2/SM3/SM4在嵌入式安全通信中的集成与应用

1. 国密算法在嵌入式安全通信中的核心价值在物联网设备爆发式增长的今天,嵌入式设备的安全通信已成为行业痛点。传统加密算法如RSA、AES在资源受限的MCU上运行时,往往面临性能瓶颈和合规性挑战。国密算法(SM2/SM3/SM4)作为我国自主…

2026/7/16 22:29:54阅读更多 →
掌握TypeScript混入:从对象合并到类组合的实战指南

掌握TypeScript混入:从对象合并到类组合的实战指南

1. 什么是TypeScript混入?混入(Mixins)是TypeScript中一种强大的代码复用机制,它允许你将多个类的功能组合到一个类中。想象一下乐高积木,每个积木块代表一个独立的功能模块,混入就是把这些积木块拼装成一个…

2026/7/18 1:16:13阅读更多 →
游戏全自动搬砖:稳定副业与全职的长期收益方案

游戏全自动搬砖:稳定副业与全职的长期收益方案

# 游戏全自动搬砖:稳定副业与全职的长期收益方案在数字经济的浪潮下,游戏搬砖早已不是新鲜词。从早期《魔兽世界》的金币代练,到如今《逆水寒》《DNF》《梦幻西游》等游戏的虚拟资产交易,越来越多的人将游戏视为一份“隐形工作”。…

2026/7/16 22:24:53阅读更多 →
AI Agent技术解析与商业应用实践

AI Agent技术解析与商业应用实践

1. 项目概述:AI Agent技术正在重塑职场生态最近半年,科技圈最火的概念莫过于"AI Agent"。这个源自强化学习领域的技术名词,正在以惊人的速度渗透到商业实践中。作为在AI行业摸爬滚打十年的从业者,我亲眼见证了这项技术从…

2026/7/18 1:20:27阅读更多 →
Python continue语句详解:循环控制与数据过滤技巧

Python continue语句详解:循环控制与数据过滤技巧

1. 图解Python continue语句:循环中的"跳过卡"在Python编程中,循环控制就像交通信号灯,而continue语句就是那个让你在特定条件下"跳过当前路口"的特殊通行证。当你在处理一个包含100个元素的列表,但需要跳过其…

2026/7/18 1:20:27阅读更多 →
Koa与Express框架核心差异与选型指南

Koa与Express框架核心差异与选型指南

1. 框架背景与设计哲学差异Koa和Express虽然出自同一团队之手,但它们的诞生背景和设计理念有着本质区别。Express最早发布于2010年,是Node.js生态中首个成熟的Web框架,它的设计反映了当时JavaScript的语言特性——基于回调的异步处理机制。而…

2026/7/18 1:20:27阅读更多 →
通用Agent技术解析:Manus架构与工程实践

通用Agent技术解析:Manus架构与工程实践

1. Manus现象解析:通用Agent的潜力与局限最近在技术社区里,Manus这个通用Agent项目引发了广泛讨论。作为一个长期关注AI代理发展的从业者,我想从实际工程角度谈谈这个项目的独特之处。Manus之所以引起轰动,是因为它展示了一个Agen…

2026/7/18 1:20:27阅读更多 →
Express框架核心机制:app函数深度解析

Express框架核心机制:app函数深度解析

1. Express框架核心机制解析:app函数深度剖析作为Node.js生态中最流行的Web框架,Express的核心设计哲学体现在其简洁而强大的app函数上。这个看似简单的函数背后,隐藏着整个框架的运转机制。让我们从一个真实的开发场景开始:const…

2026/7/18 1:20:27阅读更多 →
电脑卡顿优化实战:3招提升系统性能

电脑卡顿优化实战:3招提升系统性能

1. 电脑卡顿的根源分析每次开机等待时间超过1分钟,打开浏览器要卡顿5秒以上,这种体验确实让人抓狂。作为一个经历过数十台电脑优化实战的老手,我发现90%的卡顿问题都源于以下三个核心因素:首先是启动项泛滥。很多软件安装时会默认…

2026/7/18 1:15:26阅读更多 →
VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异当你在VSCode中启动一个新的TypeScript项目时,第一个技术决策往往从安装方式开始。这个看似简单的选择——全局安装还是项目本地安装——实际上会深刻影响你的开发流程、团队协作和…

2026/7/17 10:42:55阅读更多 →
智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手 【免费下载链接】zhihuishu 智慧树刷课插件,自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 智慧树刷课插件是一款专为智慧树在线教育平台设计的Chrome浏…

2026/7/17 8:31:03阅读更多 →
Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 你是否在GOG或Epic Games Store购买了心仪的游戏…

2026/7/17 13:22:23阅读更多 →
从模糊意图到可执行指令:Claude PRD中Prompt Engineering与需求颗粒度的5级映射法则

从模糊意图到可执行指令:Claude PRD中Prompt Engineering与需求颗粒度的5级映射法则

更多请点击: https://kaifayun.com 第一章:从模糊意图到可执行指令:Claude PRD中Prompt Engineering与需求颗粒度的5级映射法则 在Claude驱动的产品需求文档(PRD)生成实践中,原始业务意图往往以自然语言片…

2026/7/18 0:00:14阅读更多 →
Cursor配置生成失效?3大隐藏陷阱+4行修复代码,资深工程师连夜整理的紧急补救清单

Cursor配置生成失效?3大隐藏陷阱+4行修复代码,资深工程师连夜整理的紧急补救清单

更多请点击: https://codechina.net 第一章:Cursor配置生成失效?3大隐藏陷阱4行修复代码,资深工程师连夜整理的紧急补救清单 Cursor 配置生成突然失效,是近期高频报障场景。表面看是 cursor.config.json 未更新或 LSP…

2026/7/18 0:00:14阅读更多 →
某智驾大牛创业

某智驾大牛创业

作者:钟声编辑:Mark出品:红色星际头图:智能驾驶图片据悉,国内某头部智驾公司端到端模型技术大牛Z投身创业,并且已经拿到融资。Z不仅是该头部公司内部最年轻的对标阿里P10级别技术负责⼈,更是业内…

2026/7/18 0:00:14阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/17 22:48:46阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/17 13:22:38阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/17 17:26:50阅读更多 →