基于单片机的PT100温度变送器设计

基于单片机的PT100温度变送器设计


文章目录

  • 基于单片机的PT100温度变送器设计
  • 前言
  • 一、资源分享
  • 二、系统框架
  • 三、硬件准备
    • 1.主控制器
    • 2、PT100温度传感器
    • 3、显示屏
    • 4、WIFI模块
    • 5、USB转RS485模块
    • 6、SP3485EN
    • 7、K11-11D3
  • 四、设计PCB
    • 1、安装下载立创EDA专业版
    • 2、画原理图
    • 3、摆放元器件,设计规则,泪滴,铺铜。
    • 4、使用嘉立创下单助手进行下单,打板。
  • 五、软件设计
    • 1、编写STM32单片机代码
    • 2、编写手机客户端代码
  • 六、使用教程
    • 1、准备
    • 2、烧录软件
    • 3、实验验证
  • 总结


前言

本文设计出一款基于STM32单片机的PT100温度变送器。

主要功能如下:

1、使用PT100温度传感器采集温度。
2、将摄氏度转换为华氏度,将温度信号转换为4-20mA电流信号输出。
3、Modbus通信协议,以RS485电平格式实现工业通信。
4、灵活设置温度报警阈值,超出范围蜂鸣器报警。
5、通过ESP8266连接云服务器。
6、实现云平台、手机APP、单片机三方交互。


一、资源分享

实物与资料获取:基于STM32单片机的PT100温度变送器设计

资料如图所示:
在这里插入图片描述


二、系统框架

系统框架如图所示:

在这里插入图片描述

单片机整体框图:

在这里插入图片描述

三、硬件准备

1.主控制器

主控制器选择STM32F103RCT6,在淘宝上买的,如下图所示:
在这里插入图片描述
STM32F103RCT6 是意法半导体(STMicroelectronics)推出的一款基于 ARM Cortex-M3 内核的 32 位微控制器,在工业控制、消费电子等领域应用广泛。

  1. 内核与性能
    内核:采用 ARM Cortex - M3 内核,具备高效的哈佛结构和 Thumb - 2 指令集,可实现较高的代码密度和处理性能。
    工作频率:最高工作频率达 72MHz,能快速处理各种复杂任务。
    运算能力:支持单周期乘法和硬件除法,提升了数据处理速度。
  2. 存储器
    闪存(Flash):拥有 256KB 的闪存,可用于存储程序代码。其可擦写次数多,数据保存时间长,适合存储一些需要长期保存的程序和数据。
    随机存取存储器(SRAM):具备 48KB 的 SRAM,能为程序运行提供临时数据存储和堆栈空间。
  3. 外设接口
    通用输入输出端口(GPIO):多达 72 个 GPIO 引脚,可灵活配置为输入或输出模式。这些引脚可用于连接外部设备,如按键、LED、传感器等。
    串行通信接口:
    UART:3 个通用异步收发传输器(UART),可实现全双工通信,用于与其他设备进行异步串行通信,如连接 PC、蓝牙模块等。
    SPI:2 个串行外设接口(SPI),通信速度快,常用于连接外部存储器、传感器等高速设备。
    I²C:2 个集成电路总线(I²C),可用于连接多个具有 I²C 接口的设备,如 EEPROM、传感器等,实现数据的传输和设备的控制。
    USB 接口:支持 USB 2.0 全速设备模式,可方便地与计算机或其他 USB 设备进行通信。
    CAN 接口:具备 1 个控制器局域网(CAN)接口,适用于汽车电子、工业自动化等领域的分布式控制系统,实现节点间的可靠通信。
    SDIO 接口:支持安全数字输入输出(SDIO)接口,可用于连接 SD 卡、MMC 卡等大容量存储设备,方便数据的存储和读取。
  4. 定时器
    高级定时器:1 个高级定时器,可用于电机控制、PWM 生成等高精度应用场景。
    通用定时器:4 个通用定时器,具备多种功能,如定时、计数、PWM 输出等,可满足不同的应用需求。
    基本定时器:2 个基本定时器,主要用于简单的定时和计数任务。
  5. 模拟外设
    模数转换器(ADC):拥有 2 个 12 位的 ADC,最多支持 16 个外部通道。可将模拟信号转换为数字信号,用于采集传感器的模拟输出,如温度、压力等。
    数模转换器(DAC):1 个 12 位数模转换器,可将数字信号转换为模拟信号,用于产生模拟电压或电流信号。
  6. 其他特性
    低功耗模式:支持多种低功耗模式,如睡眠模式、停止模式和待机模式,可有效降低系统功耗,延长电池续航时间。
    复位和时钟管理:具备完善的复位和时钟管理系统,可确保系统在各种情况下稳定运行。同时,支持外部晶振和内部 RC 振荡器,方便用户根据实际需求选择合适的时钟源。

2、PT100温度传感器

使用PT100作为温度传感器,在淘宝上可以买到,如图:
在这里插入图片描述
pt100温度传感器是一种将温度变量转换为可传送的标准化输出信号的仪表。主要用于工业过程温度参数的测量和控制。带传感器的变送器通常由两部分组成:传感器和信号转换器。传感器主要是热电偶或热电阻;信号转换器主要由测量单元、信号处理和转换单元组成.

工作电压:DC5.0V
输出信号:模拟电压0-4V
运用场合:单片机控制温度计电缆测温,高炉水循环测温农业大棚测温,洁净室测温等电子设计
外形尺寸:35x14x1.6mm
发货清单:PT100温度传感器温度变换器1

接线:
VCC:接DC5.0V电源正极(给传感器供电)
GND:接电源负极
AO:信号引脚,接单片机AD检测引脚

3、显示屏

使用1.8寸显示屏,分辨率128*160。如图,
在这里插入图片描述
1.8寸彩屏,支持16BIT RGB 65K彩色显示,显示色彩丰富
128X160分辨率,显示清晰
采用SPI串行总线,只需几个IO即可点亮显示
带SD卡槽方便功能扩展
军工级工艺标准,长期稳定工作

4、WIFI模块

WIFI模块使用ESP8266,如图,
在这里插入图片描述
ESP01S 是一款基于乐鑫 ESP8266EX 芯片的低成本、低功耗 Wi-Fi 模块,专为物联网(IoT)和嵌入式系统设计。
以下是其详细介绍:

  1. 核心架构与性能
    处理器:采用 32 位 Tensilica L106 RISC 处理器,主频支持 80MHz 或 160MHz,集成 TCP/IP 协议栈,可直接运行用户程序。
    内存配置:
    闪存(Flash):提供 1MB 或 4MB 两种版本(具体型号差异),用于存储固件和用户代码。
    RAM:64KB,支持程序运行和数据缓存。
    通信协议:支持 802.11b/g/n 标准,数据传输速率最高 4Mbps,覆盖 2.4GHz 频段,支持 STA、AP、STA+AP 三种工作模式。
  2. 硬件资源与接口
    引脚定义:
    供电:3.0V~3.6V(推荐 3.3V),传输电流 170mA,接收电流 56mA。
    通信:UART 接口(TXD/RXD),支持 AT 指令交互,波特率默认 115200bps。
    GPIO:提供 2 个可编程引脚(GPIO0、GPIO2),可用于控制外设(如 LED、继电器)或传感器输入。
    其他:CH_PD(使能引脚,高电平有效)、RST(复位引脚)。
    扩展能力:
    PWM:部分引脚支持 PWM 输出,用于电机调速或灯光控制。
    I²C/SPI:需通过外部扩展芯片(如 PCF8574、MCP23017)实现。
  3. 低功耗特性
    工作模式:
    活跃模式:传输时电流约 170mA,接收时 56mA。
    睡眠模式:
    轻睡眠:电流约 10mA,保留网络连接。
    深度睡眠:电流低至 20μA,适用于电池供电设备。
    唤醒方式:支持定时唤醒、GPIO 触发唤醒或 UART 数据唤醒。
  4. 应用场景
    智能家居:通过 Wi-Fi 连接控制灯光、空调、门锁等设备。
    环境监测:采集温湿度、空气质量等数据并上传至云端。
    工业自动化:远程监控设备状态,实现无线数据传输。
    智能农业:监测土壤湿度、光照等参数,优化种植管理。

5、USB转RS485模块

MODBUS在工业上使用的最多是RS485格式,虽然UART也可以使用,但是不如RS485稳定,本文默认配置是RS485电平,因此需要一个USB转485模块。本文使用的是cp2102。
在这里插入图片描述
按照下图配置为USB转RS485模式:
在这里插入图片描述
在这里插入图片描述
CP2102 是 Silicon Labs 公司推出的一款 USB 转 UART 桥接芯片,在各类嵌入式系统开发中应用广泛,:

  1. 主要特性
    高度集成:该芯片将 USB 功能控制器、USB 收发器、晶体振荡器、EEPROM 和 UART 集成在一起,使得外围电路设计变得简单,缩小了整体的 PCB 面积。
    低功耗:支持低功耗运行模式,适合对功耗要求严格的设备使用,可有效延长设备的电池续航时间。
    高兼容性:兼容 USB 2.0 全速规范,在 Windows、Linux、Mac OS 等主流操作系统上都能很好地工作,无需额外的硬件电路支持。
    数据传输速率:支持高达 3Mbps 的波特率,能满足大多数应用场景下的数据传输需求,确保数据的快速、稳定传输。
  2. 引脚功能
    电源引脚:包括 VDD 和 GND,VDD 一般接 3.3V 或 5V 电源,为芯片提供工作所需的电能。
    USB 接口引脚:D + 和 D - 是 USB 差分数据线,用于与计算机的 USB 接口进行通信,实现数据的传输和设备的识别。
    UART 接口引脚:TXD 和 RXD 分别为 UART 的发送和接收引脚,用于与外部的 UART 设备进行数据交互,比如与微控制器、传感器等设备连接。
    其他引脚:如 RESET# 用于芯片复位,SUSPEND# 用于指示 USB 总线的挂起状态等。
  3. 工作原理
    当 CP2102 芯片连接到计算机的 USB 接口时,计算机会自动识别该设备,并加载相应的驱动程序。之后,计算机就可以通过 USB 接口向 CP2102 发送数据,CP2102 将接收到的 USB 数据转换为 UART 格式的数据,再通过 TXD 引脚发送给外部的 UART 设备;反之,外部 UART 设备通过 RXD 引脚将数据发送给 CP2102,CP2102 将其转换为 USB 格式的数据后,通过 USB 接口发送给计算机。
  4. 应用场景
    嵌入式系统开发:在开发基于微控制器(如 STM32、Arduino 等)的项目时,可使用 CP2102 实现计算机与微控制器之间的通信,方便进行程序的下载和调试。
    工业控制:在工业自动化领域,很多设备采用 UART 接口进行通信,CP2102 可以将这些设备与计算机连接起来,实现远程监控和控制。
    物联网设备:在物联网设备的开发过程中,需要将传感器采集到的数据传输到计算机或云端服务器,CP2102 可以作为数据传输的桥梁,实现设备与上位机之间的通信。
  5. 硬件设计要点
    电源设计:要保证电源的稳定性,可在 VDD 引脚附近添加去耦电容,以滤除电源中的高频噪声。
    USB 接口设计:D + 和 D - 引脚需要连接合适的上拉电阻,以确保 USB 通信的稳定性。
    晶体振荡器:芯片内部集成了晶体振荡器,但在 PCB 布局时,要注意晶体的位置和布线,避免受到干扰。
  6. 软件驱动
    Silicon Labs 公司为 CP2102 提供了完善的驱动程序,支持多种操作系统。在使用时,只需将 CP2102 连接到计算机,操作系统会自动识别并安装驱动程序。安装完成后,就可以像使用普通的串口设备一样使用 CP2102 进行数据通信。

6、SP3485EN

SP3485EN - L/TR 是一款由 Maxim(美信)公司生产的低功耗、半双工 RS - 485 收发器,在工业自动化、楼宇自动化、安防监控等领域有着广泛的应用。下面为你详细介绍:

  1. 主要特性
    低功耗设计:该收发器采用低功耗技术,工作电流较低,适合对功耗有严格要求的应用场景,能有效降低系统的整体功耗。
    宽电源电压范围:支持 3.0V 至 5.5V 的电源电压,这使得它可以方便地与不同电源系统的设备进行集成,提高了其通用性和兼容性。
    高数据传输速率:能够支持高达 10Mbps 的数据传输速率,可满足大多数高速数据通信的需求,确保数据的快速、准确传输。
    增强的 ESD 保护:具备 ±15kV 的人体静电放电(ESD)保护能力,可有效防止因静电放电对芯片造成损坏,提高了芯片的可靠性和稳定性。
    半双工通信:采用半双工通信模式,通过一个使能引脚来控制数据的发送和接收方向,适用于许多只需要单向数据传输的应用场景。
  2. 引脚功能
    电源引脚:VCC 为电源输入引脚,连接电源;GND 为接地引脚。
    数据收发引脚:A 和 B 是 RS - 485 总线的差分数据引脚,用于连接外部的 RS - 485 网络,实现数据的传输。
    使能引脚:RE#(低电平有效)为接收使能引脚,DE(高电平有效)为发送使能引脚,通过控制这两个引脚的电平状态,可以切换芯片的数据收发模式。
    其他引脚:RO 为接收器输出引脚,用于输出接收到的数据;DI 为驱动器输入引脚,用于输入要发送的数据。
  3. 工作原理
    当 RE# 引脚为低电平、DE 引脚为低电平时,芯片处于接收模式,外部 RS - 485 总线上的数据通过 A 和 B 引脚输入到芯片内部,经过处理后从 RO 引脚输出。当 RE# 引脚为高电平、DE 引脚为高电平时,芯片处于发送模式,要发送的数据从 DI 引脚输入到芯片内部,经过处理后通过 A 和 B 引脚发送到 RS - 485 总线上。
  4. 应用场景
    工业自动化:在工业现场的分布式控制系统中,多个设备之间需要进行远距离的数据通信,SP3485EN - L/TR 可以实现这些设备之间的 RS - 485 通信,保证数据的可靠传输。
    楼宇自动化:用于楼宇内的各种智能设备(如空调、电梯、照明等)之间的通信,实现对楼宇设备的集中监控和管理。
    安防监控:在安防监控系统中,可用于摄像头、门禁等设备与监控中心之间的数据传输,确保监控数据的实时性和准确性。
  5. 硬件设计要点
    总线终端电阻:在 RS - 485 总线的两端需要连接 120Ω 的终端电阻,以匹配总线的特性阻抗,减少信号反射,提高通信的稳定性。
    电源滤波:在 VCC 引脚附近需要添加适当的去耦电容,以滤除电源中的高频噪声,保证芯片的稳定工作。
    隔离设计:在一些对电气隔离要求较高的应用场景中,需要使用隔离变压器或光耦等器件对 SP3485EN - L/TR 进行隔离,以防止不同设备之间的电气干扰。
  6. 软件编程
    在使用 SP3485EN - L/TR 进行通信时,需要根据具体的应用需求编写相应的软件程序。一般来说,需要通过控制 RE# 和 DE 引脚的电平状态来切换芯片的数据收发模式,同时要处理好数据的发送和接收逻辑。例如,在单片机控制的系统中,可以使用 GPIO 引脚来控制 RE# 和 DE 引脚,使用串口通信来实现数据的发送和接收。

7、K11-11D3

功能:电压转0/4~20mA输出。
参数:

  1. 0.1%高精度
  2. 校准便宜0.05%
  3. 引脚ESD保护≥4000V
  4. 8~36V宽电压供电

四、设计PCB

直接使用上述模块,线路非常杂乱,因此,我们需要自己设计一块PCB底板。开发工具使用立创EDA。

相关资料已经放在本文第一节,“资源分享”。

1、安装下载立创EDA专业版


2、画原理图

在这里插入图片描述

3、摆放元器件,设计规则,泪滴,铺铜。

在这里插入图片描述
在这里插入图片描述

4、使用嘉立创下单助手进行下单,打板。

实物如图:
在这里插入图片描述


五、软件设计

1、编写STM32单片机代码

工程目录如图所示:
在这里插入图片描述

2、编写手机客户端代码

在这里插入图片描述


六、使用教程

1、准备

1、将STM32F103RCT6核心板,插在底板左上角,TYPE-C口朝上,SWD下载口朝下。
2、将TFT LCD插在底板响应位置。
3、插入AT24C02。
4、ESP8266插在相应位置。
5、接好PT100温度变送器。
6、在手机端安装机智云APP。
7、PC端安装MODBUS上位机。

2、烧录软件

下载代码需要提前安装好MDK环境,准备好SWD下载器,在MDK中进行“LOAD”下载。

3、实验验证

1、通过将PT100放在装了热水的水杯里,此时显示屏上温度值和电流值会变化。
2、使用modbus上位机发送指令,回收到板子回复的温度信息。
3、使用万用表,调到电流档,可以通过板子上的IOUT口测量电流输出。

STM32

手机APP

总结

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/pingmian/84780.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Git 清理指南:如何从版本库中移除误提交的文件(保留本地文件)

场景 在 Git 项目中,我们可能会不小心提交了本应忽略的文件(如 node_modules/、.env、*.log 等),导致仓库体积膨胀或敏感信息泄露。本文介绍如何从 Git 历史中彻底删除这些文件,同时保留本地文件。 解决方案 1. 确认…

服务器数据恢复—重装系统导致XFS文件系统分区无法访问的数据恢复案例

服务器数据恢复环境&故障: 一台服务器上通过磁盘柜RAID卡组建的riad5磁盘阵列,服务器上层安装Linux操作系统,搭建XFS文件系统。服务器上层分配一个LUN,并划分了两个分区。通过LVM扩容的方式将sdc1分区加入到了root_lv中&#…

在QtCreator中使用GitHubCopilot

文章目录 1.github copilot账号2. 安装node.js3.安装 GitHub Copilot Neovim plugin4.在Qt中启用4.1.在extension中启用4.2.在配置中启用4.3.使用/禁用 5.评价 在最新版的QtCreator中,已经通过Extension集成了GitHubCopilot进来。 我用的是16.0.2版本的(…

岛屿周长问题的三种解法:直接计数法、数学计算法与深度优先搜索

问题描述 给定一个二维网格 grid,其中1表示陆地,0表示水域。网格中的格子水平和垂直方向相连(对角线不相连)。网格中恰好有一个岛屿(即一个或多个相连的陆地格子),需要计算这个岛屿的周长。 解…

将包含父子关系的扁平列表 List<Demo> 转换成树形结构的 List<DemoVO>,每个节点包含自己的子节点列表

1.stream递归操作 private List<DemoVO> createtree(List<Demo> datas) {//得到父节点return datas.stream().filter(m -> TargetConstants.ROOT.equalsIgnoreCase(m.getParentId())).map(m -> {DemoVO vo new DemoVO();vo.setTaxonomyId(m.getPlatformTaxo…

【Jmeter】Jmeter 高并发性能压力测试

目录 一、下载 Jmeter 二、配置环境变量 三、设置中文语言 四、入门最简单的高并发性能压测流程 1. 添加线程组 2. 添加请求 3. 添加监听器 3.1 添加聚合报告 3.2 添加结果树 4. 启动测试 2 种启动方式&#xff1a; 查看结果树&#xff1a; 聚合报告&#xff1a; 五…

芯片测试之VIL/VIH(输入电平)Test全解析:从原理到实战

大家好&#xff0c;我是硅言。在数字芯片的“沟通体系”中&#xff0c;​​VIL&#xff08;输入低电平&#xff09;​​和​​VIH&#xff08;输入高电平&#xff09;​​如同芯片的“听觉阈值”&#xff0c;决定了它能否准确识别外部信号的逻辑状态。本文将从原理剖析、测试方…

【WPF】MVVM的消息机制

在WVM&#xff08;Model-View-ViewModel&#xff09;架构中&#xff0c;消息机制主要用于实现ViewModel与View之间的通信&#xff0c;同时保持它们的分离。这对于维护代码的清晰度和可测试性非常重要。在WPF&#xff08;Windows Presentation Foundation&#xff09;应用程序中…

以楼宇自控关键技术,夯实现代低碳建筑发展重要基础

当“碳达峰、碳中和”成为全球发展共识&#xff0c;建筑行业作为能源消耗与碳排放的重要领域&#xff0c;正加速向低碳化转型。在这场绿色变革中&#xff0c;楼宇自控技术凭借对建筑设备的智能管控与能源优化能力&#xff0c;成为现代低碳建筑建设的核心支撑。从数据采集到智能…

西电【信息与内容安全】课程期末复习笔记

西电【信息与内容安全】课程期末复习笔记 来自2022年春的古早遗留档案&#xff0c;有人需要这个&#xff0c;我就再发一下吧。 ‍ 平时成绩&#xff1a; 10%。线上&#xff1a; 10% &#xff08;线上学习内容&#xff0c; 共 100 分。&#xff09;实验&#xff1a; 10% &#…

【论文阅读笔记】ICLR 2025 | 解析Ref-Gaussian如何实现高质量可交互反射渲染

Reflective Gaussian Splatting Info 会议 【ICLR 2025】 作者 复旦大学&#xff0c;萨里大学&#xff1b;复旦张力教授团队 Github地址 https://github.com/fudan-zvg/ref-gaussian.git Project地址 https://fudan-zvg.github.io/ref-gaussian/ Abstract 新视图合成得益…

面向GPU、CPU及机器学习加速器的机器学习编译器

机器学习编译器概述 机器学习编译器是一种专门针对机器学习工作负载设计的工具&#xff0c;旨在将高层模型描述&#xff08;如TensorFlow或PyTorch模型&#xff09;高效编译为可在不同硬件&#xff08;如GPU、CPU或专用加速器&#xff09;上执行的底层代码。其核心目标是优化计…

论文分类打榜赛Baseline(2):InternLM昇腾硬件微调实践

本文来自社区投稿&#xff0c;作者丁一超 书生大模型实战营第5期已正式启动&#xff0c;本期实战营新增「论文分类打榜赛」&#xff0c;以帮助学员更好地掌握大模型技能。 本文将手把手带领大家如何基于昇腾微调 InternLM 模型&#xff0c;轻松上手论文自动分类任务。从环境配…

mac安装mvnd结合idea

mac安装mvnd结合idea hi&#xff0c;我是阿昌&#xff0c;今天记录一下mac系统下如何安装mvnd同时通过maven-helper插件配置mvnd命令&#xff0c;提升编译速度&#xff1b; 0、前言 如果你正在开发一个由大量模块组成的大型项目&#xff0c;Gradle可以让大型项目构建的更快&…

扩展模块--QWebEngine功能及架构解析

Qt WebEngine 模块在 Qt 6.9 中提供了基于 Chromium 的网页渲染引擎功能。 一、主要功能 核心功能 网页渲染引擎 基于 Chromium 项目的最新稳定版本 支持现代 HTML5、CSS3 和 JavaScript 标准 主要组件 QWebEngineView - 用于显示网页内容的 widget QWebEnginePage - 表示…

Spring Boot Admin监控

1、概述 Spring Boot Admin 是一款用于监控 Spring Boot 应用程序的开源工具&#xff0c;可帮助开发者实时监控应用的运行状态、性能指标、日志信息等。 2、核心功能 应用状态监控 显示应用是否在线、启动时间、运行时长等基础信息。监控 JVM 相关指标&#xff1a;内存使用情…

【QT】QTableView自定义样式:仅显示行间隔、隐藏列间隔、表头样式、表格样式、单行选中等

目录 0.背景 1.详细代码 0.背景 项目需要&#xff0c;我有一个自定义的类Steer_Electrode_Table&#xff0c;是一个QTableView&#xff1b; 记录一下QTableView修改前后的样式&#xff0c;仅供参考 看一下我修改前后的样式对比 1.详细代码 void Steer_Electrode_Table::init…

mvnd-快速打包maven项目

mvnd 一、简介一、定位与背景二、核心架构与加速原理三、使用注意事项 二、下载安装三、idea集成mvnd插件四、打包测试时长 一、简介 mvnd&#xff08;Maven Daemon&#xff09;是Apache Maven团队推出的高性能构建工具&#xff0c;旨在解决传统Maven构建速度慢的问题。它通过…

C++ 中的尾调用优化TCO:原理、实战与汇编分析

C尾调用优化 什么是尾调用&#xff1f;描述无返回值函数最后调用函数也可能做尾调用优化 例子关键特征&#xff08;写法&#xff09; 尾调用和尾递归的区别&#xff1f;为什么尾调用优化可以提高效率&#xff1f;通常的递归调用&#xff1a;尾调用优化&#xff1a;为什么栈帧复…

Java集合 - ArrayList底层源码解析

下面开始对 Java 中 ArrayList 的深度源码分析&#xff0c;基于 JDK 8 的实现&#xff08;后续版本略有差异&#xff0c;但核心逻辑一致&#xff09;。我们将从 类结构、扩容机制、核心方法实现、性能优化、线程安全问题 等角度进行详细解析 一、类结构与核心字段 1. 类继承关…