基于STM32的锂电池电压电量检测与报警系统设计

发布时间:2026/8/17 14:56:07

基于STM32的锂电池电压电量检测与报警系统设计
1. 项目缘起为什么需要一个独立的锂电池监控器手头有个项目用到了几块大容量的18650锂电池组给设备供电。设备本身是低功耗的但锂电池这玩意儿用起来总有点提心吊胆。过放吧电池直接报废过充吧轻则鼓包重则冒烟。虽然市面上有现成的保护板但那些板子功能比较基础就是到了截止电压直接切断你根本不知道电池还剩多少“血”也没法在电量低时提前预警。设备正跑着关键任务呢“啪”一下断电了数据都没来得及保存那真是欲哭无泪。所以我就琢磨着得自己做一个更“聪明”的监控系统。核心需求很明确第一得实时知道电池的电压这是判断电量的基础第二得把电压换算成直观的电量百分比就像手机电池图标那样第三电量低了得提前报警给我留出充足的反应时间比如切换电源或者保存数据第四整个系统得稳定可靠不能自己瞎报警或者漏报。基于这些用STM32单片机来当大脑就成了很自然的选择它资源丰富、性能足够关键是开发资料多踩坑了也容易找到解决方案。这个“基于STM32单片机锂电池电压电量检测报警器系统”说白了就是一个给锂电池配的“贴身健康管家”。它适合所有用锂电池供电的电子项目开发者无论是做无人机、移动机器人、便携仪器还是户外物联网设备只要你关心电池状态不想让设备因电量问题“暴毙”这个设计思路和实现方案就值得参考。接下来我就把从硬件选型、电路设计、程序编写到调试优化的完整过程掰开揉碎了讲清楚。2. 硬件核心如何精准“读取”电池的电压电压检测是整个系统的基石测不准后面的一切都是空中楼阁。STM32单片机本身的ADC模数转换器可以测量0-3.3V的电压而我们的锂电池单节标称3.7V满电可能到4.2V三节串联的话电压就更高了直接接上去肯定会烧坏单片机。所以第一步就是要把电池的高电压按比例“压缩”到STM32 ADC能安全测量的范围内。2.1 分压电阻网络的设计与计算最经典、最可靠的方法就是用电阻分压。我在原理图上设计了一个由两个精密电阻串联的分压电路一端接电池正极另一端接地从中间抽头接到STM32的ADC输入引脚。这里面的计算很简单但有几个关键点容易忽略。假设我们检测的是单节锂电池最高4.2V希望分压后最大电压不超过3.0V给STM32的3.3V供电留点余量。那么分压比应该是 3.0 / 4.2 ≈ 0.714。我选择了R110kΩR225kΩ采用E96系列标称值的搭配。实际分压比 R2 / (R1 R2) 25k / (10k 25k) ≈ 0.714正好符合要求。注意电阻的精度直接影响测量准确性。这里务必使用1%精度的金属膜电阻千万别用5%的碳膜电阻那误差会让你怀疑人生。同时电阻的温漂也要考虑对于高精度应用可以选温漂系数如25ppm/°C更低的型号。计算出了分压后的电压 Vadc那么电池的实际电压 Vbat Vadc * (R1 R2) / R2。这个公式会直接写在程序里。2.2 滤波与保护让信号更干净、更安全直接从电阻中间抽出来的信号可能会引入电源噪声或高频干扰导致ADC读数跳动。所以我在ADC输入引脚前增加了一个RC低通滤波电路也就是一个100欧姆的电阻串联一个0.1uF的电容到地。这个滤波器的截止频率大约是1/(2πRC)16kHz足以滤除大部分高频噪声让ADC读到稳定的直流电压。另一个至关重要的设计是保护电路。尽管分压电阻已经限制了电流但为了应对可能出现的瞬间高压或静电我在ADC输入引脚处还并联了一个3.6V的稳压二极管如BZT52C3V6到地方向是阴极接输入。这样一旦电压意外超过3.6V稳压管就会导通钳位保护STM32的IO口。虽然增加了微小的漏电流但对于安全来说这点代价完全值得。2.3 电源与MCU选型系统的能量与大脑整个系统需要供电。最省事的方法就是直接用被监测的锂电池供电。但锂电池电压会变化如从4.2V到3.0V而STM32和周边电路需要稳定的3.3V。因此一个高效的LDO低压差线性稳压器是必须的。我选择了AMS1117-3.3它压差小足够应付单节锂电池整个放电区间的电压输入。如果电池电压可能低于4.0V考虑LDO压降则需要选择压差更小的LDO或者使用DC-DC降压模块以提高效率。MCU方面STM32F103C8T6俗称“蓝桥杯”或“最小系统板”上的那种是性价比之王。它拥有12位ADC、多个定时器、USART等外设资源完全够用。而且社区资料极其丰富各种库和例程一抓一大把能极大降低开发难度。PCB布局时记得在AMS1117的输入输出端、STM32的每个电源引脚附近都放置一个0.1uF的陶瓷电容进行去耦这是保证数字电路稳定工作的基本操作。3. 软件逻辑从电压到电量再到报警的“思考”过程硬件搭好了相当于有了感官ADC和嘴巴报警器。接下来就要编写STM32里的程序也就是这个系统的“大脑”和“思想”。程序的核心流程可以概括为初始化 - 定时采集电压 - 计算滤波后电压 - 查表估算电量 - 判断是否报警 - 更新显示如果有。3.1 ADC采样与软件滤波首先初始化STM32的ADC。我采用DMA直接存储器访问模式让ADC以固定的频率比如每秒100次自动采样并将结果存放到数组里完全不需要CPU干预效率很高。然后CPU只需要定时比如每1秒去处理这个数组。直接读取一次的ADC值波动很大不能直接用。我采用了两种滤波方式结合。第一步是中值滤波每次处理时取DMA数组中最新的5个值去掉一个最大值和一个最小值对剩下的3个值求平均。这能有效抵抗偶然的、剧烈的脉冲干扰。第二步是一阶滞后滤波或称指数加权平均Filtered_Voltage α * Current_Voltage (1-α) * Last_Filtered_Voltage。其中α是一个介于0和1之间的系数比如0.2。这个算法相当于给历史数据加了权重使得最终输出的电压值变化平滑不会突变非常符合电池电压缓慢变化的特性。// 示例代码片段一阶滞后滤波 float alpha 0.2; float filtered_voltage 0; void update_filtered_voltage(float new_adc_voltage) { filtered_voltage alpha * new_adc_voltage (1 - alpha) * filtered_voltage; }3.2 电量估算电压与电量的非线性博弈这是最具挑战也最容易出错的部分。很多人以为电池电压和电量是线性关系比如4.2V是100%3.0V是0%。大错特错锂电池的放电曲线是非线性的中间有一段很长的平台期电压变化缓慢而在快没电的末端电压会急剧下降。最实用的方法是查表法。我通过实验或者查阅电池规格书得到了一组“电压-电量”的对应关系点。例如电压 (V)电量 (%)4.201003.90803.70503.50203.3053.000在程序中我将这个表定义为一个数组。当得到一个滤波后的电压值后就在这个表里查找它落在哪两个电压点之间然后用线性插值法计算出对应的电量百分比。虽然插值本身是线性的但由于采样点来自真实曲线所以整体估算结果比纯线性公式准确得多。实操心得这个电压-电量表需要针对你具体使用的电池型号进行校准。不同材料三元锂 vs 磷酸铁锂、不同品牌、甚至新旧程度不同的电池曲线都不一样。最好的办法是用电子负载以恒定电流对电池进行完整放电同时记录电压和时间从而绘制出属于你这块电池的放电曲线并生成更精确的查询表。3.3 报警策略与输出控制电量算出来了报警逻辑就清晰了。我设定了两级报警低电量预警当电量低于20%时触发预警。我让一个LED指示灯开始慢速闪烁比如1秒亮1秒灭提示用户电量不足需要准备充电或采取行动。严重低电量报警当电量低于5%时触发紧急报警。此时LED指示灯变为快速闪烁比如0.2秒亮0.2秒灭同时控制一个蜂鸣器或通过三极管驱动一个有源蜂鸣器发出“滴滴滴”的急促声音进行声光双重报警。报警的输出控制很简单就是通过STM32的GPIO引脚输出高低电平来控制LED和蜂鸣器对应的三极管开关。程序里用一个状态机来管理当前所处的报警状态正常、预警、报警避免状态频繁跳变。4. 系统深化从原型到可靠产品的关键步骤基本的电压检测和报警功能实现后这个系统还可以做得更稳固、更易用。这部分往往是区分“玩具”和“工具”的关键。4.1 增加显示与交互界面为了更直观我添加了一块0.96英寸的OLED显示屏I2C接口。屏幕上可以实时显示电池电压、估算电量百分比、当前报警状态等信息。这样就不再需要连接电脑看串口数据了一目了然。更进一步可以增加一两个按键。通过按键可以切换显示内容比如查看历史最低/最高电压、设置报警阈值、或者手动关闭报警音在特定场合需要静音。这涉及到状态菜单编程虽然复杂点但极大地提升了产品的用户体验和灵活性。4.2 数据记录与通信对于一些需要后期分析的应用数据记录功能很有用。我可以利用STM32的内部Flash需谨慎操作避免频繁擦写或者外接一个微型SPI Flash芯片定时比如每分钟将电压、电量、时间戳保存下来。这样就能回溯电池的使用情况分析其健康状态。另外加上一个串口转Wi-Fi或蓝牙模块如ESP-01S或HC-05系统就能将数据无线发送到手机App或云平台实现远程监控。这在物联网设备里非常常见STM32负责采集和计算通过串口将数据发给通信模块分工明确。4.3 提高测量精度与抗干扰对于精度要求极高的场合之前的简单分压可能还不够。首先STM32的ADC基准电压VREF默认是供电电压3.3V这个电压本身如果有波动ADC结果就会漂移。如果板子上有富裕的引脚强烈建议使用STM32的VREF引脚连接一个外部的、高精度的基准电压源芯片如REF3033输出3.3V。这能从根本上提升ADC的测量精度。其次在PCB布局布线时模拟部分分压电阻、滤波电路、ADC输入走线一定要远离数字部分特别是单片机晶振、开关电源电路。最好能用地线将模拟区域包围起来进行隔离。ADC的采样时钟频率也不要设置得太高适当降低频率有利于提高精度。5. 调试与排坑那些让我熬夜的“意外”理论很美好调试很残酷。在把这个系统做稳定的过程中我踩过几个典型的坑这里分享出来希望能帮你节省时间。5.1 电压读数跳变严重现象电池电压明明很稳定但ADC读回来的值上下跳动几十个LSB最低有效位换算成电压波动有零点零几伏。排查首先检查硬件用万用表测量分压电阻中间的电压发现非常稳定。排除硬件问题。检查软件滤波参数。最初只用了简单的算术平均效果不佳。改为“中值滤波一阶滞后滤波”组合后平滑度大大提升。检查电源。用示波器观察给STM32供电的3.3V纹波发现有一定噪声。在AMS1117的输入和输出端分别并上更大的电解电容如10uF后电源质量改善ADC读数也更稳了。根因电源噪声和软件滤波算法不足共同导致的测量噪声。5.2 电量百分比显示异常跳动大现象电压测量已经比较平稳了但计算出来的电量百分比在某个点比如50%附近会来回跳变好几个百分点。排查检查电压-电量查询表。发现我在平台期3.7V-3.9V的电压采样点设置得太稀疏了。比如表格里只有3.7V对应50%3.9V对应80%。当实际电压在3.8V时程序插值计算的结果会对电压的微小波动非常敏感导致电量百分比剧烈变化。我用实验数据重新生成了查询表在电压变化平缓的区域增加了更多的采样点让曲线更密。修改后电量显示就平滑多了。根因电压-电量对应关系表的精度不足尤其是在电压变化缓慢的区间。5.3 低电压下系统工作不正常现象当电池电压降到3.5V左右时OLED屏幕开始乱码或者单片机偶尔复位。排查测量此时AMS1117-3.3输入端的电压即电池电压约为3.5V。AMS1117-3.3的典型压差Dropout Voltage约为1V实际上在负载电流不大时会更小但也要考虑。3.5V - 1V 2.5V已经无法输出稳定的3.3V了更换为低压差LDO如ME6209压差约200mV100mA。这样即使电池电压降到3.3VLDO仍能勉强维持输出系统工作电压下限得以延伸。更优的方案是使用高效率的同步降压DC-DC芯片如MP2307它在整个输入电压范围内都能高效输出3.3V但电路比LDO稍复杂。根因LDO的压差特性导致系统最低工作电压过高与锂电池的放电下限不匹配。5.4 蜂鸣器报警音沙哑或不响现象程序控制蜂鸣器引脚输出了高低电平但蜂鸣器声音很小、沙哑或者完全不响。排查检查电路。我最初直接用STM32的GPIO最大输出电流20mA左右驱动一个有源蜂鸣器工作电流可能30-50mA驱动能力不足。增加一个NPN三极管如S8050做开关驱动。STM32的GPIO控制三极管基极蜂鸣器接在集电极回路电源直接供电。这样GPIO只提供很小的基极电流就能控制蜂鸣器的大电流通断。检查蜂鸣器极性。有源蜂鸣器分正负极接反了不会响。用万用表电压档测量控制信号有效时蜂鸣器两端应有接近电源电压的压降。根因单片机IO口的驱动电流有限无法直接驱动功率较大的外设必须使用三极管或MOS管进行扩流。6. 从设计到PCB把想法固化成可靠的电路板当所有电路在面包板或洞洞板上调试通过后就该设计PCB了这是产品化的关键一步。我用的是嘉立创EDA专业版它免费且上手快。6.1 原理图绘制与封装检查首先根据调试好的电路绘制完整的原理图。每个元件都要有正确的符号和封装。这里最容易出错的就是封装。一定要去元器件的官方数据手册Datasheet里找到推荐的PCB封装尺寸或者用嘉立创EDA的元件库它通常比较准确。特别是STM32、LDO、接插件这些引脚间距和焊盘大小错了板子回来就废了。画完原理图用DRC设计规则检查功能跑一遍确保没有电气连接错误。6.2 PCB布局布线经验谈布局是门艺术也是科学。我的原则是“功能分区流向清晰”电源入口先处理电池接口进来先经过一个反接保护二极管防止电源接反然后紧跟着就是滤波电容一个大电解电容如100uF并一个0.1uF陶瓷电容。电源模块放中间LDO或DC-DC芯片放在板子中间或一侧其输入输出电容必须紧贴芯片引脚放置这是降低纹波的关键。模拟与数字分区以电源模块为界一侧放置模拟部分分压电阻、滤波RC、ADC输入走线另一侧放置数字部分STM32、晶振、数码管/OLED、蜂鸣器驱动。两者之间用一条地线或电源线进行物理隔离。单片机居中STM32放在核心位置其去耦电容每个电源引脚一个0.1uF必须放在对应引脚背面越近越好。布线优先级先布电源线尽量宽再布晶振等关键信号线尽量短且两边用地线包围最后布一般信号线。对于ADC输入线要避免与数字信号线特别是时钟线平行走线防止串扰。6.3 打样与焊接调试PCB文件发给板厂打样嘉立创5元包邮真香。板子回来后先别急着焊所有元件。我的顺序是焊接电源部分只焊电源接口、保护二极管、LDO及其输入输出电容。上电用万用表测量输出电压是否为稳定的3.3V。这一步确保“心脏”是好的。焊接单片机最小系统焊上STM32、复位电路、boot选择电路、晶振及其负载电容、所有电源去耦电容。连接ST-Link下载器尝试给芯片供电、识别、下载一个最简单的LED闪烁程序。这一步确保“大脑”能工作。分模块焊接调试接着焊接ADC分压采样电路用程序读取电压与万用表对比。然后焊接显示模块如OLED测试显示是否正常。最后焊接报警输出电路LED、蜂鸣器驱动。每焊好一个模块就测试一个模块这样一旦有问题排查范围很小。焊接时注意静电防护尤其是STM32芯片。使用质量合格的焊锡和助焊剂保持烙铁头干净。焊接完检查有无虚焊、连锡。

相关新闻

微分方程建模实战:从动态系统描述到数值求解与模型分析

微分方程建模实战:从动态系统描述到数值求解与模型分析

2026/8/17 14:56:07

1. 从“纸上谈兵”到“实战利器”:微分方程在建模中的角色转变 很多人一听到“微分方程”,第一反应就是高等数学课本里那些复杂的符号、抽象的推导和让人头疼的解题技巧。这感觉就像学了一身绝世武功,却不知道在哪个江湖里能用上。我当年也有…

C++回文数判断:从基础算法到最优解,掌握编程核心思维

C++回文数判断:从基础算法到最优解,掌握编程核心思维

2026/8/17 14:46:06

1. 从“回文数”说起:一个被低估的编程基本功回文数,这个概念听起来简单得有点“小儿科”——不就是正着读和反着读都一样的数字吗?比如121、1331、12321。很多刚接触C的朋友,可能在刷题网站或者教材的习题里见过它,把…

PHP+H5全开源WebSocket实时聊天室开发指南

PHP+H5全开源WebSocket实时聊天室开发指南

2026/8/17 14:46:06

1. 项目概述:PHPH5全开源实时聊天室解决方案 这个基于PHP和H5技术栈的开源聊天室项目,是我在开发社区即时通讯系统时沉淀的实战成果。它完美解决了传统轮询方案的高延迟问题,采用WebSocket协议实现真正的消息实时推送,消息到达客户…

一颗 AMD Ryzen,一半潜力锁在“看不见的管理员“手里?免费调试工具 SMUDebugTool 上手全记录

一颗 AMD Ryzen,一半潜力锁在“看不见的管理员“手里?免费调试工具 SMUDebugTool 上手全记录

2026/8/17 17:06:12

一颗 AMD Ryzen,一半潜力锁在"看不见的管理员"手里?免费调试工具 SMUDebugTool 上手全记录 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, …

【Bug已解决】Realistic Firefox option for PlayWrightBrowserToolkit agents

【Bug已解决】Realistic Firefox option for PlayWrightBrowserToolkit agents

2026/8/17 17:06:12

【Bug已解决】Realistic Firefox option for PlayWrightBrowserToolkit agents 一、现象长什么样 PlayWrightBrowserToolkit(LangChain 里用 Playwright 驱动浏览器、让 agent 能"打开网页/点击/抓取"的工具集)默认重度偏向 Chromium。当你想用…

HAP-python源码架构解析:从AccessoryDriver到HAP Server的完整链路

HAP-python源码架构解析:从AccessoryDriver到HAP Server的完整链路

2026/8/17 17:06:12

HAP-python源码架构解析:从AccessoryDriver到HAP Server的完整链路 【免费下载链接】HAP-python A python implementation of the HomeKit Accessory Protocol (HAP) 项目地址: https://gitcode.com/gh_mirrors/ha/HAP-python HAP-python 是一个用纯 Python …

扫描版PDF没法复制搜索?用Umi-OCR 5步生成双层可搜索PDF

扫描版PDF没法复制搜索?用Umi-OCR 5步生成双层可搜索PDF

2026/8/17 17:06:12

扫描版PDF没法复制搜索?用Umi-OCR 5步生成双层可搜索PDF 【免费下载链接】Umi-OCR OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二维码。内置多国语…

OpenMetaHarness实战:构建具备长期记忆与规划能力的AI智能体

OpenMetaHarness实战:构建具备长期记忆与规划能力的AI智能体

2026/8/17 17:06:12

最近在尝试构建能够处理复杂、多步骤任务的智能体时,我遇到了一个普遍性的难题:如何让一个AI智能体记住“过去”,并基于“过去”的经验来规划“未来”?简单的一次性对话或单次代码生成,往往难以应对需要跨多个会话、依…

免费SSL通配符证书实战:Let‘s Encrypt自动化申请与部署指南

免费SSL通配符证书实战:Let‘s Encrypt自动化申请与部署指南

2026/8/17 16:56:12

这次我们来看一个能帮你省下每年数千元证书费用的技术方案:免费SSL通配符证书。对于个人开发者、初创团队或需要为多个子域名部署HTTPS的用户来说,购买商业通配符证书是一笔不小的开销。而通过Lets Encrypt这类公益CA(证书颁发机构&#xff0…

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

2026/8/17 1:28:42

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

【双层规划,节点出清价,绿证交易,CVaR方法】两级电力市场环境下计及风险的省间交易商最优购电模型附Matlab代码

【双层规划,节点出清价,绿证交易,CVaR方法】两级电力市场环境下计及风险的省间交易商最优购电模型附Matlab代码

2026/8/16 0:04:13

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

隐式mpc+自适应mpc+时变mpc,线性时变模型预测控制附Simulink仿真

隐式mpc+自适应mpc+时变mpc,线性时变模型预测控制附Simulink仿真

2026/8/17 8:40:51

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

LabVIEW异步调用实战:从原理到生产者消费者模式,解决界面卡顿与并行处理难题

LabVIEW异步调用实战:从原理到生产者消费者模式,解决界面卡顿与并行处理难题

2026/8/17 0:05:22

1. 项目概述:为什么异步调用是LabVIEW进阶的必修课? 如果你用LabVIEW做过稍微复杂点的项目,尤其是涉及界面响应、多任务并行或者硬件IO等待的场景,大概率遇到过这样的窘境:前面板点个按钮,整个程序就“卡死…

LabVIEW异步调用实战:解决界面卡顿与并行处理难题

LabVIEW异步调用实战:解决界面卡顿与并行处理难题

2026/8/17 0:05:22

1. 项目概述:为什么异步调用是LabVIEW进阶的必经之路如果你在LabVIEW里写过稍微复杂点的程序,尤其是涉及到界面响应、多任务并行或者硬件IO等待,大概率会遇到一个头疼的问题:程序“卡”住了。前面板点不动,进度条不更新…

飞书局域网文件传输实战:3种方案实现高速点对点传输

飞书局域网文件传输实战:3种方案实现高速点对点传输

2026/8/17 0:05:22

1. 项目概述:为什么要在局域网内用飞书传文件? 飞书作为一款主流的协同办公套件,其核心功能是围绕云端协作设计的。无论是文档、表格还是文件,通常的分享逻辑都是“上传到云端 -> 生成链接 -> 分享给同事”。这个流程在互联…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/17 12:00:53

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/15 10:10:27

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/14 19:35:14

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…