自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(291)
  • 资源 (1)
  • 收藏
  • 关注

原创 主流开源BLE协议栈

本文对比了主流开源蓝牙协议栈的技术特点与适用平台。BlueZ是Linux官方协议栈,与内核深度集成;Bluedroid和Fluoride是Android系统的优化方案;NimBLE和BTstack专为资源受限设备设计;Cordio与ARM Mbed OS深度结合。Zephyr原生BLE协议栈支持Nordic、Silicon Labs、NXP等主流厂商的MCU平台,覆盖从nRF系列到STM32等多款芯片。各协议栈在开源许可、功能特性和目标平台方面存在明显差异,开发者可根据项目需求选择最适合的方案。

2026-04-10 18:14:14 112

原创 环形缓冲区(Ring Buffer)

本文介绍了一种环形缓冲区(Ring Buffer)的实现方法及其在嵌入式系统中的应用。主要内容包括: 环形缓冲区的工作流程:详细说明了写入和读取操作的逻辑流程,包括指针管理、空/满判断机制。 C语言实现:提供了完整的头文件和源文件实现,包含初始化、读写操作、状态查询等功能,支持单字节和多字节操作。 应用示例:展示了如何在STM32串口接收中断中使用环形缓冲区,实现中断安全的数据接收。 临界区保护:强调了在多线程/中断环境下操作共享变量时的原子性保护要求,给出了解决方案建议。 该实现具有中断安全、高效的特点,

2026-04-10 16:32:31 149

原创 常见的滤波算法

本文介绍了六种数字滤波算法及其C语言实现:1)中位值滤波法适用于缓慢变化参数,但对快速变化参数效果不佳;2)算术平均滤波法适合随机干扰信号,但实时性较差;3)递推平均滤波法抑制周期性干扰好,但对脉冲干扰敏感;4)中位值平均滤波法结合中位值和平均法优点,但速度慢;5)一阶滞后滤波法适合高频波动,但有相位滞后;6)低通滤波法实现简单。每种方法都提供了优缺点分析和典型应用场景,可根据实际需求选择合适的滤波算法。

2026-04-10 16:05:06 21

原创 LVGL(Light and Versatile Graphics Library,轻量级和通用图形库)

LVGL是一款专为嵌入式系统设计的开源图形库,采用纯C语言编写,具有资源占用低、功能丰富等特点。它支持多种图形组件、动画效果和输入设备,最低仅需64KB Flash和16KB RAM。LVGL采用对象树层次结构管理UI元素,所有控件都继承自基础对象类lv_obj_t,提供统一的API接口。常用控件包括按钮、标签、滑块等基础控件,以及列表、图表等高级组件,适用于各类嵌入式GUI开发场景。

2026-04-10 09:07:14 120

原创 常用LCD屏驱

本文介绍了6款常见LCD驱动芯片的主要参数:ST7789(480×800,SPI/并口)、RA8873M(800×480,带图形加速)、ILI9488(480×320,支持262K色)、ILI9341(320×240,性价比高)、NT35510(480×800,支持触摸)和SSD1963(800×600,内置显存)。这些芯片适用于不同尺寸屏幕,提供SPI或并口接口,各有特点:ST7789资源需求低,RA8873M适合工业应用,ILI9341适合初学者,SSD1963图形处理能力强但引脚多。

2026-03-31 23:17:08 44

原创 卡尔曼滤波(状态估计算法)

卡尔曼滤波是嵌入式开发中核心的状态估计算法,适用于噪声环境下的传感器数据融合和动态系统状态估计。作为一种最优递归数据融合算法,它通过预测和更新两个步骤,在线性高斯假设下实现最小均方误差估计。其特点包括递推计算、噪声统计特性融合及不确定性输出。卡尔曼滤波要求系统模型线性、噪声高斯分布且状态可观测。数学模型包含状态方程和观测方程,通过五大方程实现预测和更新过程,其中预测阶段更新状态估计和协方差,更新阶段计算卡尔曼增益并修正状态估计和协方差。

2026-03-30 22:35:17 343

原创 PID算法(控制算法)

PID算法是工业控制中的经典策略,通过比例(P)、积分(I)、微分(D)三环节的线性组合实现精确控制。比例项快速响应误差,积分项消除静态余差,微分项抑制超调。该算法广泛应用于水温控制(克服热惯性)、PWM电机调速(快速响应负载变化)和智能烤箱(精准多区控温)等领域。参数整定需平衡响应速度与稳定性,通常先调比例、再积分、最后微分。实际应用中需根据系统特性选择位置式或增量式PID,并结合输出限幅等优化措施。

2026-03-30 20:36:09 398

原创 WiFi 弱网重连策略

针对弱网环境下Wi-Fi连接不稳定的问题,提出了一套智能重连方案。该策略通过弱网检测(RSSI、丢包率等指标)预判断连风险,采用状态机管理连接状态,并基于指数退避算法实现动态重连:初期快速尝试(1-8秒间隔),失败后逐步延长间隔至120秒上限,同时加入随机抖动避免拥塞。方案区分前台/后台场景调整优先级,设置最大重试次数(默认15次)防止资源浪费,在彻底失败时引导用户干预或切换网络。通过信号阈值判断、退避时间计算和状态机流转,在连接恢复速度和资源消耗间取得平衡,显著提升弱网环境。

2026-03-30 10:29:55 324

原创 WiFi OTA 断点续传

Wi-Fi弱网环境下的断点续传技术原理与实现。通过HTTP的Range头或FTP的REST命令实现续传请求,客户端持久化记录传输断点,服务端从指定位置继续传输。包含完整流程图,阐述了传输准备、续传请求构造、数据写入、网络中断处理等关键环节,并提供了异常处理方案和技术实现要点。该技术通过解耦文件传输与网络状态,配合完整性校验,有效提升了弱网环境下的传输可靠性,显著改善用户体验和带宽利用率。

2026-03-30 00:00:47 398

原创 低功耗WIFI

低功耗WiFi是一系列针对物联网设备优化的技术方案,通过协议优化和硬件设计大幅降低功耗。主要路径包括:协议层面的WiFi 4/5/6节能模式(DTIM/PSM)、WiFi 6的TWT目标唤醒时间机制,以及WiFi HaLow低频长距方案;硬件层面则采用集成式SoC、低功耗模组和先进架构。主流芯片包括乐鑫ESP32、芯科SiWx917等,与普通WiFi相比具有μA级待机功耗、主控休眠等特点。这些技术使WiFi能应用于智能门锁、传感器等电池供电设备,与传统WiFi形成互补。

2026-03-23 22:44:53 340

原创 常用 BLE Profile 汇总(A2DP,AVRCP,HFP,SPP)

本文整理了蓝牙 SIG 规范中常见的 BLE Profile 及其应用场景。主要包括:HOGP(键盘/鼠标数据传输)、HFP(车载免提通话)、A2DP(高质量音频传输)、AVRCP(音视频遥控)、SPP(串口数据透传)等12种常用Profile。每种Profile都标注了UUID、名称、主要功能及典型使用场景,如PBAP用于同步联系人、HRP用于心率监测等。这些Profile覆盖了音频传输、数据通信、远程控制、健康监测等多个领域,为蓝牙设备开发提供了标准化的功能实现方案。

2026-03-22 21:39:35 57

原创 BLE和经典蓝牙对比(协议栈,数据传输模型,应用场景)

蓝牙经典(BR/EDR)与低功耗蓝牙(BLE)在架构设计、功耗特性和应用场景上存在显著差异。BR/EDR采用多层协议栈支持流式音频传输(如A2DP)和文件交换(如OBEX),具有较高功耗(30-50mA)和复杂连接过程;而BLE采用精简协议栈(GATT/ATT),专为低功耗(μA级)短数据包传输设计,支持快速连接和广播模式。BR/EDR主导无线音频、车载系统等场景,BLE则广泛应用于可穿戴设备、医疗监测和智能家居领域。两种技术在物理层(信道数/间隔)、数据传输模型和功耗管理机制上形成鲜明对比,满足不同物联网

2026-03-22 17:46:52 387

原创 实测BLE的最小连接间隔

BLE连接间隔的理论最小值(7.5毫秒)与实际协商值(安卓12.5ms/iOS15ms)的差异,并提供了三种实测方法:1)使用专业BLE协议分析仪或开源抓包工具捕获空中数据包;2)通过电流波形分析连接间隔;3)从机端通过SDK API获取连接参数(如nRF5 SDK的ble_gap_evt_conn_param_update_t结构体)。这些方法可帮助开发者验证设备实际使用的连接间隔参数。

2026-03-20 20:22:24 60

原创 BLE 写操作详解:write_req 与 write_cmd

摘要:BLE协议栈中的write_req和write_cmd属于ATT层,分别对应可靠写入和快速写入。write_req(opcode=0x12)需要服务器响应,适合关键参数配置;write_cmd(opcode=0x52)无需响应,适合高速数据传输。两者与GATT特性属性CHAR_PROP_WRITE和CHAR_PROP_WRITE_WITHOUT_RSP直接对应。write_req提供协议层确认但吞吐量低(~10KB/s),write_cmd吞吐量高(~100KB/s)但需应用层保证可靠性。

2026-03-10 23:51:22 435

原创 分布式系统

分布式系统是一组位于网络上的计算机,为了共同完成一个任务而协同工作的系统。对于用户来说,它就像一个单一、连贯的系统。在后端开发中,分布式系统意味着将原本运行在一台强大服务器(单体架构)上的应用程序,拆分成多个**服务v,这些服务可以部署在不同的服务器(节点)上,通过网络进行通信和协作。核心目标:通过协作获得更高的性能(吞吐量)、可扩展性(水平扩展)、可用性(容错)和可维护性。

2025-09-13 14:52:47 1062

原创 C核心高级技术

C语言的高级应用领域和核心技术:C语言广泛应用于系统编程、嵌入式系统、高性能计算、网络编程和数据库系统等需要精确控制硬件和高性能的场景。 文章重点讲解了三个核心技术: 指针高级应用:包括多级指针实现动态多维数组,以及函数指针实现回调机制; 内存管理高级技术:通过自定义内存分配器提高性能,示例展示了简单内存池的实现; 多线程与并发编程:介绍了使用POSIX线程库处理线程同步的关键技术。 每个技术点都配有详细的C代码示例和Mermaid图示,清晰展示了内存布局和程序结构。这些高级技术是提升C语言编程能

2025-09-13 12:23:14 904

原创 Linux内核(架构)

Linux内核的架构设计与核心子系统实现。Linux采用宏内核设计,主要分为用户空间和内核空间两大层次。内核核心子系统包括进程管理、内存管理、虚拟文件系统等模块。其中,进程管理通过task_struct结构体描述进程状态,fork()系统调用实现进程创建;内存管理采用虚拟内存系统,包含页表管理和Slab分配器;虚拟文件系统(VFS)则通过统一接口抽象不同文件系统实现。这些子系统协同工作,共同构建了Linux内核的基础功能框架。

2025-09-12 00:51:28 1474

原创 RT-Thread

RT-Thread是中国自主研发的开源实时操作系统,支持从微控制器到高性能处理器的多种硬件平台。其核心特性包括高度可伸缩性(最小仅需3KB ROM/1.2KB RAM)、模块化设计和丰富组件(文件系统、网络协议栈等)。系统采用分层架构,包含内核层、组件层和软件包层,支持256级线程优先级和全抢占式调度。提供了多种线程间通信机制(信号量、消息队列等)和内存管理方式,并配备RT-Thread Studio等开发工具,特别适合国内开发者使用国产芯片进行物联网开发。

2025-09-11 06:39:50 1110

原创 FreeRTOS框图

FreeRTOS是一个轻量级开源实时操作系统内核,专为嵌入式系统设计。它通过任务调度、任务间通信、同步和定时器管理,解决了传统超级循环架构的响应性差、维护困难和资源利用率低等问题。FreeRTOS采用抢占式调度,支持任务优先级管理,提供队列、信号量、互斥量等机制实现任务间通信和资源共享。其核心组件包括任务管理、通信与同步、内存管理和定时器管理等,通过硬件抽象层与底层硬件交互。FreeRTOS适用于需要实时性能和多任务管理的嵌入式应用场景。

2025-09-11 06:23:27 1140

原创 SLAM(同步定位与建图)

SLAM(同步定位与建图)是解决机器人未知环境中自主定位与地图构建的"鸡生蛋"问题。其核心是通过传感器数据(激光雷达、摄像头等)和算法同时实现定位与建图。典型SLAM系统包含前端跟踪(里程计)、回环检测、后端优化和建图模块。关键技术涉及状态估计、优化理论、计算机视觉、几何学、传感器融合等跨学科领域。代码示例展示了简化的前端里程计算法和后端图优化思想,实际系统采用C++高性能实现。SLAM广泛应用于自动驾驶、AR/VR、机器人导航等领域。

2025-09-09 23:33:51 1354

原创 Go语言核心技术

Go语言核心技术栈包括语言基础、并发模型和标准库三大核心。语言基础特性涵盖静态类型、垃圾回收和CSP风格并发编程,支持多返回值和接口实现。并发模型基于Goroutines和Channels,通过WaitGroup和Select实现高效并发控制。标准库提供网络编程、文件处理等丰富功能,并支持JSON序列化/反序列化。Go生态系统包含依赖管理工具链、测试框架和Web框架,构成完整的开发解决方案。

2025-09-09 01:04:46 944

原创 设计模式(策略,观察者,单例,工厂方法)

C语言实现设计模式的核心方法,重点分析了策略模式和观察者模式。通过结构体和函数指针模拟面向对象特性,策略模式实现了算法族封装与动态切换,观察者模式建立了一对多的状态通知机制。两种模式均遵循开闭原则,策略模式适用于算法选择等场景,观察者模式则用于事件处理系统。文中提供了完整的C语言实现代码,展示了头文件组织、接口定义和具体模式应用,为C语言项目提供了可扩展的设计范例。

2025-09-08 23:59:09 809

原创 AI Agent(LLM,RAG,RL,Multimodal)

AI Agent是一种能够感知环境、自主规划决策并执行任务的人工智能系统,相比传统AI模型(如ChatGPT)具备更强的行动能力。其核心模块包括:规划模块(大语言模型驱动的任务分解)、工具使用模块(调用外部API和软件)和记忆模块(存储交互上下文)。关键技术融合了大语言模型、提示工程、知识检索(RAG)、强化学习等。应用场景涵盖客户服务、个人助理、科研、软件开发等领域,代表AI向通用人工智能(AGI)发展的重要方向,将人机交互模式从被动应答转变为主动代理。

2025-09-08 00:30:40 739

原创 UML(统一建模语言)

UML(统一建模语言)是一种标准化的可视化建模工具,用于软件系统的设计、分析和文档化。它提供14种图形,主要分为结构图(如类图、组件图)和行为图(如用例图、时序图)。常用UML图包括:用例图(描述系统功能)、类图(展示系统静态结构)、时序图(对象交互顺序)、活动图(业务流程)和状态机图(对象状态变化)。UML能促进团队沟通、提前发现设计缺陷、生成代码框架,是软件开发生命周期中各阶段的重要工具。实际应用中应根据需求选择合适的UML图,通常用例图、类图和时序图组合就能解决大部分问题。

2025-09-07 22:08:24 1184 2

原创 网络爬虫(web crawler)

网络爬虫是一种自动化程序,通过模拟浏览器行为抓取互联网信息。其工作流程包括:从URL种子库出发,经调度器分配任务,下载器获取网页内容,解析器提取数据和链接,通过去重过滤后新URL循环抓取,有价值数据存入数据库。爬虫需遵守Robots协议,注意合法性和道德性,广泛应用于搜索引擎、数据分析等领域。核心特点是沿链接自动爬取并结构化存储网络信息。

2025-09-07 21:09:16 1798

原创 AIGC(AI生成内容)

AIGC(AI生成内容)是利用AI技术自动创造原创内容的创新方式。其核心在于AI模型通过海量数据预训练,理解人类指令后生成全新文本、图像、音频等内容,而非简单复制。AIGC将人的角色从创作者转变为引导者,通过输入指令即可快速获得多样化输出。该技术具有原创性高、生产效率高、风格可定制三大特点,已广泛应用于文创、商业、教育、影视等领域,正在深刻改变内容创作与生产方式。AIGC不仅是效率工具,更代表着人机协作的新型创作范式。

2025-09-07 20:10:50 1572

原创 云原生数据平台(Cloud-Native)

现代云原生数据平台是基于云环境构建的数据架构,采用微服务、容器化等云原生技术,实现数据全生命周期管理。其分层架构包括:1)云原生基础设施层,提供弹性计算和存储资源;2)数据摄入层,支持批量和实时数据集成;3)数据处理存储层,结合数据湖、数据仓库和湖仓一体架构;4)贯穿各层的数据治理层,确保元数据、质量和安全管理;5)数据服务层,提供分析、AI和API等数据消费能力。核心优势包括弹性扩展、敏捷开发、开放标准、统一治理和成本效益,为企业提供端到端的数据管理解决方案。

2025-09-07 18:46:10 1045

原创 云计算(Docker,Kubernetes,Apache,Tomcat)

云计算是一种通过互联网按需提供计算资源的服务模式,采用按使用量付费的定价方式。其整体架构包含三个核心服务模式(SaaS、PaaS、IaaS)和四种部署模式(公有云、私有云、混合云、社区云)。关键技术包括虚拟化、分布式计算、自动化等,具备按需自服务、弹性扩展等特征。云计算通过将IT资源转变为公共服务,显著降低了企业IT成本,推动了数字化转型。主流云服务商包括AWS、Azure、阿里云等,各自在不同领域具有优势。

2025-09-07 16:55:10 842

原创 大数据(非结构化数据,Kafka,MongoDB,Spark,Flink,Hive)

大数据指超出传统处理能力的巨量数据集合,具有5V特性(规模、速度、多样性、价值密度低、真实性)。其技术栈分为五层:1)数据来源(结构化/非结构化数据);2)采集与存储(HDFS、NoSQL、Kafka等);3)处理与分析(批处理如Spark、流处理如Flink、机器学习);4)服务与可视化(Hive、Tableau等);5)行业应用(推荐系统、风险控制等)。核心逻辑是通过分布式存储和计算技术,从海量数据中提取价值并驱动决策,覆盖数据全生命周期。

2025-09-07 15:43:00 1147

原创 主流的开源协议(MIT,Apache,GPL v2/v3)

开源协议选择指南摘要 本文介绍了三种主流开源协议的特点及适用场景: MIT协议:最宽松,仅需保留版权声明,允许闭源商用(如jQuery、React)。 Apache 2.0:在MIT基础上增加专利授权条款,更适合商业项目(如Android、Kubernetes)。 GPL v2:具有强传染性,要求衍生代码必须开源(如Linux、Git)。 通过流程图可快速决策:需传染性选GPL;需专利保护选Apache;追求极致宽松则选MIT。不同协议在版权保留、专利授权和代码传染性上存在显著差异。

2025-09-06 21:57:35 1457

原创 Spring 微服务架构(Spring Boot,Spring Cloud,高并发)

微服务架构是一种将应用拆分为多个独立、协作的小型服务的架构风格,与传统的单体架构相比具有更高扩展性和灵活性。Spring微服务是使用Spring框架构建微服务的完整解决方案,包含Spring Boot基础和Spring Cloud治理组件。其他主流微服务技术还包括Go语言的Go Micro、Node.js的NestJS以及跨语言的Kubernetes服务网格等。微服务架构虽然提高了系统弹性,但也带来了部署和运维的复杂性,需要根据项目规模权衡选择。

2025-09-05 00:40:37 1260

原创 BLE开发易错点(HID服务)

iOS系统对包含HID服务的蓝牙设备会进行系统级接管,导致应用层断开操作无效。这是由于HID设备被视为高优先级外设,系统会主动维持连接以保证稳定性,并可能快速重连以节省电量。解决方案建议:1)设备端去除HID服务;2)在iOS设置中"忘记设备"或重启蓝牙/设备。这能彻底清除系统缓存中的错误连接状态。

2025-09-05 00:12:29 284

原创 ATT层MTU大小

不同蓝牙版本的MTU限制不同,从BLE4.0的23字节到BLE5.0+的512字节不等,有效数据载荷通常为MTU减去3字节开销。实际应用中,MTU由连接双方共同决定,设备支持存在差异(iOS上限约185字节,Android更灵活)。建议开发者确认设备支持、主动请求适当MTU大小,并进行实际测试以优化数据传输效率。增大MTU可减少分包和协议开销,但需平衡性能和兼容性。

2025-09-04 23:14:11 1048

原创 cURL用法(Client for URLs)

cURL是一个命令行工具和一个代码库,用于使用各种网络协议(如 HTTP、HTTPS、FTP 等)在服务器之间或与服务器之间传输数据。它通常被比作“命令行下的浏览器”,但它的能力远不止于此。

2025-09-02 06:06:50 878

原创 深度学习框架(TensorFlow,PyTorch)

TensorFlow(含Keras)生态完整,适合工业部署;PyTorch动态图设计更受学术界青睐;JAX适合高性能计算研究;PaddlePaddle是国产全功能框架。其他工具如Keras简化入门,Fast.ai降低学习门槛,MXNet强调可扩展性。选择建议:初学者用Keras,学术研究选PyTorch,工业部署用TensorFlow,高性能计算考虑JAX,国产项目推荐PaddlePaddle。

2025-09-02 05:28:10 1110

原创 五大主流大语言模型(LLM)对比

五大主流大型语言模型(LLM)对比 目前最具影响力的五款LLM包括:ChatGPT (GPT-5)、Claude 4、Gemini 2.5、Grok 4 和 DeepSeek R1,各具特色。 ChatGPT 全能型,支持智能体操作、图像生成,适合多任务处理;Claude 4 专注安全性与长文本分析,适合企业应用;Gemini 2.5 深度整合Google生态,支持多模态编辑;Grok 4 结合社交媒体,实时分析能力强;DeepSeek R1 开源免费,数学与编程表现优异。 选择建议:多模态选Gemini或

2025-09-01 00:15:07 2711

原创 大语言模型 (LLM) 与多模态大模型 (MLM)

模型 (Model):在人工智能中,模型是一个从数据中学习而来的数学函数或程序,用于处理特定任务(如图像分类、文本翻译)。它由参数 (Parameters)组成,这些参数是在训练过程中调整的数值,决定了模型的行为。大模型 (Large Model):通常指参数规模巨大(达到数十亿甚至万亿级别)、训练数据量海量、需要巨大计算资源训练的模型。其“大”不仅指尺寸,更意味着一种能力的涌现 (Emergent Ability)

2025-09-01 00:09:12 1161

原创 TLS(传输层安全协议 Transport Layer Security)

TLS/SSL是保障网络通信安全的核心协议,提供保密性、完整性和认证性。它位于应用层和传输层之间,通过加密隧道防止窃听、篡改和中间人攻击。TLS握手协议采用非对称加密交换会话密钥,结合数字证书验证身份,最终使用对称加密高效传输数据。关键特性包括前向保密(ECDHE/DHE算法)和证书验证(PKI体系)。最佳实践建议禁用旧版本、优先使用TLS 1.3、配置强密码套件。TLS融合多种密码学技术,成为现代互联网安全的基石。

2025-08-31 02:18:16 1679

原创 ECDH和数字签名

ECDH和数字签名是两种互补的密码学技术,分别解决不同安全问题。ECDH用于安全密钥协商,确保通信双方生成共享密钥以实现保密性;而数字签名(如ECDSA)则用于身份认证和完整性验证,防止中间人攻击。在实际应用中(如TLS协议),二者常协同工作:ECDH建立会话密钥,数字签名验证通信方身份,共同构建完整的安全通信体系。它们基于相同的椭圆曲线数学基础,但功能分工明确,缺一不可。

2025-08-31 01:26:27 1135

原创 数字签名 digital signature

数字签名是一种基于非对称加密技术的安全机制,用于验证信息的真实性、完整性和不可否认性。它通过私钥签名和公钥验证两个步骤实现:发送方先用哈希函数处理原始消息生成摘要,再用私钥加密生成签名;接收方用公钥解密签名得到摘要,并与重新计算的摘要对比验证。该方法解决了信息认证、防篡改和防抵赖三大安全问题,其核心优势在于加密效率高(仅处理哈希摘要)且适用性强。

2025-08-31 00:10:04 1259

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除