fatfs相关宏定义说明

学习 stm32 FATFS 系统文件函数使用和学习查看说明以及常用函数例程 阅读详情

fat16文件系统DBR
在这里插入图片描述
宏定义如下:

#define BS_JmpBoot			0		//跳转指令。3字节。/* x86 jump instruction (3-byte) */
#define BS_OEMName			3		//OEM名称。8字节。/* OEM name (8-byte) */
#define BPB_BytsPerSec		11		//扇区字节数。2字节。/* Sector size [byte] (WORD) */
#define BPB_SecPerClus		13		//每蔟扇区数。1字节。/* Cluster size [sector] (BYTE) */
#define BPB_RsvdSecCnt		14		//保留扇区数。2字节。/* Size of reserved area [sector] (WORD) */
#define BPB_NumFATs			16		//FAT表个数。1字节。/* Number of FATs (BYTE) */
#define BPB_RootEntCnt		17		//FAT32必须为0,FAT12/16为fat表中根目录区域大小。2字节。/* Size of root directory area for FAT [entry] (WORD) */
#define BPB_TotSec16		19		//FAT32必须为0,FAT12/16为卷大小。2字节。/* Volume size (16-bit) [sector] (WORD) */
#define BPB_Media			21		//介质描述符。1字节。/* Media descriptor byte (BYTE) */
#define BPB_FATSz16			22		//FAT32必须为0,FAT12/16为fat表占用的扇区数。2字节。/* FAT size (16-bit) [sector] (WORD) */
#define BPB_SecPerTrk		24		//每磁道扇区数。2字节。/* Number of sectors per track for int13h [sector] (WORD) */
#define BPB_NumHeads		26		//磁头数。2字节。/* Number of heads for int13h (WORD) */
#define BPB_HiddSec			28	//隐藏扇区数,卷在磁盘中的偏移量,用扇区个数表示。/* Volume offset from top of the drive (DWORD) */
#define BPB_TotSec32		32		//总扇区数,单位为扇区。/* Volume size (32-bit) [sector] (DWORD) */
#define BS_DrvNum			36		//BIOS驱动器号/* Physical drive number for int13h (BYTE) */
#define BS_NTres			37		//win nt错误标志。/* WindowsNT error flag (BYTE) */
#define BS_BootSig			38		//扩展引导标志。/* Extended boot signature (BYTE) */
#define BS_VolID			39		//卷序列号。/* Volume serial number (DWORD) */
#define BS_VolLab			43		//卷标。/* Volume label string (8-byte) */
#define BS_FilSysType		54		//文件系统类型字符串。/* Filesystem type string (8-byte) */
#define BS_BootCode			62		//启动代码。448字节。/* Boot code (448-byte) */
#define BS_55AA				510		//签名。/* Signature word (WORD) */

fat32文件系统DBR
在这里插入图片描述
0~35中使用到的字段与fat16一致。

#define BPB_FATSz32			36		//每FAT扇区数。/* FAT32: FAT size [sector] (DWORD) */
#define BPB_ExtFlags32		40		//标记。/* FAT32: Extended flags (WORD) */
#define BPB_FSVer32			42		//版本。/* FAT32: Filesystem version (WORD) */
#define BPB_RootClus32		44		//根目录首蔟号。/* FAT32: Root directory cluster (DWORD) */
#define BPB_FSInfo32		48		//文件系统信息扇区号。/* FAT32: Offset of FSINFO sector (WORD) */
#define BPB_BkBootSec32		50		//DBR备份扇区号。/* FAT32: Offset of backup boot sector (WORD) */
#define BS_DrvNum32			64		//BIOS驱动器号。/* FAT32: Physical drive number for int13h (BYTE) */
#define BS_NTres32			65		//错误标记。/* FAT32: Error flag (BYTE) */
#define BS_BootSig32		66		//扩展引导标志。/* FAT32: Extended boot signature (BYTE) */
#define BS_VolID32			67		//卷序列号。/* FAT32: Volume serial number (DWORD) */
#define BS_VolLab32			71		//卷标。/* FAT32: Volume label string (8-byte) */
#define BS_FilSysType32		82		//文件系统类型字符串。/* FAT32: Filesystem type string (8-byte) */
#define BS_BootCode32		90		//启动代码,420字节。/* FAT32: Boot code (420-byte) */

exfat文件系统DBR
在这里插入图片描述

#define BPB_ZeroedEx		11		//保留,必须为0。/* exFAT: MBZ field (53-byte) */
#define BPB_VolOfsEx		64		//分区的起始扇区号(隐藏扇区数)。/* exFAT: Volume offset from top of the drive [sector] (QWORD) */
#define BPB_TotSecEx		72		//分区总扇区数。/* exFAT: Volume size [sector] (QWORD) */
#define BPB_FatOfsEx		80		//FAT表起始扇区号(从DBR到FAT表的扇区个数)。/* exFAT: FAT offset from top of the volume [sector] (DWORD) */
#define BPB_FatSzEx			84		//FAT表扇区数。/* exFAT: FAT size [sector] (DWORD) */
#define BPB_DataOfsEx		88		//首蔟起始扇区号(数据区)。/* exFAT: Data offset from top of the volume [sector] (DWORD) */
#define BPB_NumClusEx		92		//总蔟数。/* exFAT: Number of clusters (DWORD) */
#define BPB_RootClusEx		96		//根目录首蔟。/* exFAT: Root directory start cluster (DWORD) */
#define BPB_VolIDEx			100		//卷序列号。/* exFAT: Volume serial number (DWORD) */
#define BPB_FSVerEx			104		//文件系统版本。/* exFAT: Filesystem version (WORD) */
#define BPB_VolFlagEx		106		//卷标志。/* exFAT: Volume flags (WORD) */
#define BPB_BytsPerSecEx	108		//每扇区字节数描述,2的幂。/* exFAT: Log2 of sector size in unit of byte (BYTE) */
#define BPB_SecPerClusEx	109		//每蔟扇区数描述,2的幂。/* exFAT: Log2 of cluster size in unit of sector (BYTE) */
#define BPB_NumFATsEx		110		//fat表个数。/* exFAT: Number of FATs (BYTE) */
#define BPB_DrvNumEx		111		//驱动标记。/* exFAT: Physical drive number for int13h (BYTE) */
#define BPB_PercInUseEx		112		//使用百分比。/* exFAT: Percent in use (BYTE) */
#define BPB_RsvdEx			113		//保留。/* exFAT: Reserved (7-byte) */
#define BS_BootCodeEx		120		//启动代码。/* exFAT: Boot code (390-byte) */

fat16和fat32文件系统中短文件名条目
在这里插入图片描述

#define DIR_Name			0		//短文件名,11字节。/* Short file name (11-byte) */
#define DIR_Attr			11		//属性。/* Attribute (BYTE) */
#define DIR_NTres			12		//小写字母标记。/* Lower case flag (BYTE) */
#define DIR_CrtTime10		13		//创建时间,单位10ms。/* Created time sub-second (BYTE) */
#define DIR_CrtTime			14		//创建时间。/* Created time (DWORD) */
#define DIR_LstAccDate		18		//最后访问日期。/* Last accessed date (WORD) */
#define DIR_FstClusHI		20		//高16bit首蔟。/* Higher 16-bit of first cluster (WORD) */
#define DIR_ModTime			22		//修改时间。/* Modified time (DWORD) */
#define DIR_FstClusLO		26		//低16bit首蔟。/* Lower 16-bit of first cluster (WORD) */
#define DIR_FileSize		28		//文件大小。/* File size (DWORD) */

fat16和fat32文件系统中长文件名:
在这里插入图片描述
注意:长文件名文件目录条目存储:短文件名条目+多个长文件名条目。

#define LDIR_Ord			0		//长文件名序号和标志/* LFN: LFN order and LLE flag (BYTE) */
#define LDIR_Attr			11		//长文件名属性。/* LFN: LFN attribute (BYTE) */
#define LDIR_Type			12		//长文件名条目类型。/* LFN: Entry type (BYTE) */
#define LDIR_Chksum			13		//短文件名校验和。/* LFN: Checksum of the SFN (BYTE) */
#define LDIR_FstClusLO		26		//长文件名条目中,该字段必须为0。/* LFN: MBZ field (WORD) */

exfat文件系统卷目录条:
在这里插入图片描述

//所有exfat目录条第一个字节
#define XDIR_Type			0		//exfat目录类型。/* exFAT: Type of exFAT directory entry (BYTE) */

//卷目录条
#define XDIR_NumLabel		1		//exfat卷标字符数。/* exFAT: Number of volume label characters (BYTE) */
#define XDIR_Label			2		//exfat卷标。/* exFAT: Volume label (11-WORD) */

exfat文件系统蔟位图目录条:
在这里插入图片描述

exfat文件系统大写字符文件目录条:
在这里插入图片描述


//大写转换表目录条
#define XDIR_CaseSum		4		//exfat大写转换表校验和/* exFAT: Sum of case conversion table (DWORD) */
#define XDIR_NumSec			1		//exfat附属目录项数。/* exFAT: Number of secondary entries (BYTE) */

exfat32用户文件目录条:
在这里插入图片描述

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

//文件目录条
#define XDIR_SetSum			2		//exfat检验和。/* exFAT: Sum of the set of directory entries (WORD) */
#define XDIR_Attr			4		//exfat文件属性。/* exFAT: File attribute (WORD) */
#define XDIR_CrtTime		8		//exfat文件创建时间。/* exFAT: Created time (DWORD) */
#define XDIR_ModTime		12		//exfat文件修改时间。/* exFAT: Modified time (DWORD) */
#define XDIR_AccTime		16		//exfat文件最后访问时间。/* exFAT: Last accessed time (DWORD) */
#define XDIR_CrtTime10		20		//exfat文件创建时间,精确至10ms。/* exFAT: Created time subsecond (BYTE) */
#define XDIR_ModTime10		21		//exfat文件最后修改时间,精确至10ms。/* exFAT: Modified time subsecond (BYTE) */
#define XDIR_CrtTZ			22		//exfat创建时间时区差,间隔15分钟。/* exFAT: Created timezone (BYTE) */
#define XDIR_ModTZ			23		//exfat最后修改时间时区差,间隔15分钟。/* exFAT: Modified timezone (BYTE) */
#define XDIR_AccTZ			24		//exfat最后访问时间时区差,间隔15分钟。/* exFAT: Last accessed timezone (BYTE) */
#define XDIR_GenFlags		33		//exfat第二个条目标志。/* exFAT: General secondary flags (BYTE) */
#define XDIR_NumName		35		//exfat文件名字符数。/* exFAT: Number of file name characters (BYTE) */
#define XDIR_NameHash		36		//exfat文件名hash值。/* exFAT: Hash of file name (WORD) */
#define XDIR_ValidFileSize	40		//exfat文件大小。/* exFAT: Valid file size (QWORD) */
#define XDIR_FstClus		52		//exfat文件首蔟。/* exFAT: First cluster of the file data (DWORD) */
#define XDIR_FileSize		56		//exfat文件大小。/* exFAT: File/Directory size (QWORD) */

MBR结构:
在这里插入图片描述
PTE结构说明
在这里插入图片描述

#define MBR_Table			446		//MBR中主引导程序代码,占用446字节,也是DPT的偏移量。/* MBR: Offset of partition table in the MBR */
#define SZ_PTE				16		//MBR中分区条目大小,一个分区使用16字节来表示。/* MBR: Size of a partition table entry */
#define PTE_Boot			0		//引导标志,0x00表示非活动分区,0x80为活动分区,一个磁盘只能有一个活动分区。/* MBR PTE: Boot indicator */
#define PTE_StHead			1		//分区的起始磁头号。/* MBR PTE: Start head */
#define PTE_StSec			2		//分区的起始扇区号(每个磁道分成多个扇区,并对扇区进行了编号)。/* MBR。 PTE: Start sector */
#define PTE_StCyl			3		//分区的起始柱面(磁道号)。/* MBR PTE: Start cylinder */
#define PTE_System			4		//分区类型/* MBR PTE: System ID */
#define PTE_EdHead			5		//分区的结束磁头号。/* MBR PTE: End head */
#define PTE_EdSec			6		//分区的结束扇区号。/* MBR PTE: End sector */
#define PTE_EdCyl			7		//分区的结束柱面(磁道号)。/* MBR PTE: End cylinder */
#define PTE_StLba			8		//起始扇区数,从磁盘最开始到当前分区的扇区个数。/* MBR PTE: Start in LBA */
#define PTE_SizLba			12		//当前分区占用的扇区个数。/* MBR PTE: Size in LBA */
FatFS文件系统详解-附移植建议 最近做的spi flash,本打算弄个文件系统,由于之前用过了JFFS、YAFFS和TrueFFS,代码量都相当的大,这次想找款代码量不那么吓人的,学习一下,听说配置会相对复杂一些。选来选去,最终选定了FatFS,代码量足够的小,最新的R0.09版本只有1个.c文件(当然,还有一 阅读详情

相关推荐

FATFS文件系统详解之系统移植

FATFS文件系统移植

z1236464的博客 3275

fatfs文件系统的宏定义使用

前序 前面分析了fatfs文件系统的ff.c文件的函数,本篇文章简单介绍一下ff.h中的宏的使用和含义。 几个问题 fatfs配置宏的作用是什么?应该怎么来使用? (1)到底是什么作用? 如果开始就说xxx宏是用来做什么的,就不大好让人理解,此时此刻,通过在上述函数分析的过程中,我们就会看到各种各样的宏,所以,就很容易知道这些宏的作用。 (2)对于不认识的宏,应该怎么来使用? (i)根据头文件注释来识别判定。 (ii)如果注释也不能很好的判定和了解,那就搜索这个宏在源代码的位置,然后分析源码,彻底的了解它的

agony_isolate的博客 1666

STM32H7的fatfs移植

本文主要是讲述如何移植fatfs到stm32H7的驱动上。

凛冬将至的博客 1150

FATFS介绍及相关参数计算

MBR 主引导记录(MBR,Master Boot Record)由 446 个字节的引导代码、64 字节的主分区(4 个)表及两个字节的签名值“55 AA”组成。#define BPB_FATSz16 22 /* FAT size (16-bit) [sector] (WORD) */96个。四个分区,每个分区为16字节信息共64字节,加两字节的数字签名刚好为一个扇区大小512,其他填0。一个保留扇区,一个fat文件扇区32,512个目录,每个目录32个字节,占32个扇区,

blacksharpsss的博客 1154

Fatfs(文件系统的移植)

Fatfs(文件系统的移植)一、文件系统介绍二、移植条件、说明1、FatFs模块在可移植性方面设定了以下条件:2、数据类型说明3、系统框架三、文件移植操作四、接口的实现修改后的diskio.c对ffconf.h文件进行修改API查询五、测试使用头文件源文件 一、文件系统介绍 FatFs是用于小型嵌入式系统的通用 FAT / exFAT文件系统模块。FatFs模块是按照 ANSI C(C89)编写的,并且与磁盘 I / O层完全分开。因此,它独立于平台。它可以并入资源有限的小型微控制器中,例如8051,PIC

qq_45531642的博客 8520

STM32-FATFS文件系统

FATFS 是一个完全免费开源的 FAT/exFAT 文件系统模块,专门为小型的嵌入式系统而设计。它完全用标准 C 语言(ANSI C C89)编写,所以具有良好的硬件平台独立性,只需做简单的修改就可以移植到 8051、PIC、AVR、ARM、Z80、RX 等系列单片机上。它支持 FATl2、FATl6 和FAT32,支持多个存储媒介;有独立的缓冲区,可以对多个文件进行读/写,并特别对 8 位单片机和 16 位单片机做了优化。

zhuimeng_1234的博客 1032

EXFAT文件系统DBR的完美恢复

本文简要介绍了EXFAT文件系统的优点,并对EXFAT文件系统中关键部位特征进行了较为详细的剖析,从而可以进一步理解如何利用WINHEX进行手动恢复重要参数的方法。最后给出了一个小的脚本程序,无需掌握C++等高级语言,也可以快速、准确生成EXFAT文件系统的校验码,进而达到可以完整恢复EXFAT的DBR的目的。

xlzgwry的博客 1万+

winhex exfat DBR模板

需要用到winhex中读取exfat DBR信息,但winhex中没有EXFAT模板,所以自己写了一个,如果有需要的话可以下载来用!

FatFs模块功能配置选项

Fatfs模块的功能可以裁剪,通过配置宏定义实现,宏定义位于文件ffconf.h中。1.功能配置1.1 _FS_READONLY 使能或禁用与写相关函数。 当设置为只读(1)时,API函数f_write、f_sync、f_unlink、f_mkdir、f_chmod、f_rename、f_truncate、f_getfree。1.2 _FS_MINIMIZE 函数功能裁剪。1.3 _USE_STR...

朱工的专栏 2万+

EXFAT格式资料

有关于EXFAT格式中的手工恢复DBR,FAT表等的手工恢复以及各项参数

采用超级电容设计的UPS不间断电源,用于掉电数据保存,可续航10-60秒

关键词:树莓派 CM4 UPS 不间断电源 掉电保存 超级电容 SuperCap 充电 升压 续航 10F 法拉电容 Mcuzone 野芯科技 概述:我们经常会遇到系统意外掉电的情况,对于一些可靠性要求很高的工业现场设备或者运行过程中有重要数据需要保存的平台就需要UPS电源了。常规的UPS采用后备锂电池设计,具备无缝切换、续航时间长、稳定可靠等特点,但同时也有价格过高、体积过大的缺点。对于不少仅需在检测到系统掉电后对数据进行保存即可的应用而言,这些标准的UPS电源就不太合适,为此我...

6605

FatFs函数详解

fatfs

smallerlang的博客 2577

DDR4协议规范之(一)DDR4结构和寻址

DDR4 SDRAM结构和寻址DDR4 SDRAM的封装和寻址新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 DDR4 SDRAM的封装和寻址 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习

YJFeiii的博客 3万+

FATFS文件系统详解

一、文件系统 负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。即在磁盘上组织文件的方法。 常用的文件系统: FAT / FATFS NTFS: 基于安全性的文件系统,是Windows NT所采用的独特的文件系统结构 CDFS:CDFS是大部分的光盘的文件系统 exFAT FATFS文件系统 FATFS是一个完全免费开源的FAT 文件系统模块,专门为小型的嵌入式系统而设计。完全用标准C 语言编写,所以具有良好的硬件平台独立性。可以移植到8051、PIC、AVR、SH、Z80、H8、ARM

留小乙的博客 2万+

数据质量管理的一些思考

背景 在近期的项目当中,我们为客户落地实施了数据资产平台。随后,在数据平台中接入了客户子公司的一个业务系统的明细数据。客户希望在我们的数据平台上通过数据探索和数据分析,来挖掘一些业务价值和业务创新点。 当我们拿到数据开始进行一些初步探索的时候,发现导入平台的数据质量存在一定的问题:例如一些用于数据分析的关键字段的值为空、一些本应该有主从关系的数据对应不上、数据分类混乱等。这些问题直接影响到了对...

IDEAL Garden 1万+

ShardingSphere-JDBC-若依框架集成(SpringBoot)

ShardingSphere基础知识、ShardingSphere-JDBC如何集成进若依框架中 使用的是若依框架前后端版本、动态数据源,可自行切换,默认数据源为达梦8代理端,

编程小菜鸟的笔记 8168

STM32学习——FATFS文件系统

什么是文件系统 负责管理和存储文件信息的软件机构,在磁盘上组织文件的方法。 常用的文件系统 FAT/FATFS 小型嵌入式系统 NTFS WINDOWS CDFS 光盘 exFAT 更适合用于闪存 FATFS优点:免费开源,专门为小型嵌入式系统设计,完全用C语言编写;支持FAT12,FAT16与FAT32,支持多种存储媒介,有独立的缓冲区,可对多个文件进行读写,可裁剪的文件系统(极为重要) FATFS的特点: Windows兼容的FAT文件系统,(支...

qq_43460068的博客 1万+

STM32HAL库学习笔记九——LCD显示

本文不会对驱动编写做特别详细的描述,以记录CubeMX的部署流程为主。

weixin_44762233的博客 6918

FATFS文件系统

FATFS文件系统

qq_64531765的博客 7015

SV--对象拷贝、参数化的类

对象拷贝,参数化的类

创芯人--fly的博客 1570

Python时间序列:PaddleTS-时间序列分类

评估的指标采用F1,Precision,Recall,PaddleTS已经基于TSDataset实现了这三个指标的计算,直接调用即可。使用内置的API:get_dataset加载BasicMotions数据集。模型训练完成之后,可以对测试集进行预测并评估。模型保存之后,可以加载模型用于新的数据预测。可以将训练完成的模型保存到指定路径。概率预测 可以返回每个分类的概率。安装paddlets。

斌擎科技 1293

STM32CubeMX学习笔记(25)——FatFs文件系统使用(操作SPI Flash)

一、FatFs简介 FatFs 是面向小型嵌入式系统的一种通用的 FAT 文件系统。它完全是由 ANSI C 语言编写并且完全独立于底层的 I/O 介质。因此它可以很容易地不加修改地移植到其他的处理器当中,如 8051、PIC、AVR、SH、Z80、H8、ARM 等。FatFs 支持 FAT12、FAT16、FAT32 等格式,所以我们利用前面写好的 SPI Flash 芯片驱动,把 FatFs 文件系统代码移植到工程之中,就可以利用文件系统的各种函数,对 SPI Flash 芯片以“文件”格式进行读写操

Leung的博客 1万+

大模型之Spring AI实战系列(二):Spring Boot + OpenAI 打造聊天应用全攻略

本篇文章是《Spring AI实战》专栏的第一篇开发入门文章,我们将借助一个完整的OpenAI聊天应用示例,详细介绍如何运用Spring Boot和Spring AI快速搭建一个支持OpenAI API的聊天服务,全面涵盖基础对话、流式对话、多提供商配置等核心功能。

寻道AI,探索AI无限可能! 6867

STM32 FATFS - 在flash上运行fatfs

SPI配置,根据原理图使用的是SPI1端口,这里配置为全双工主模式,并且关闭硬件NSS,波特率分频为4,使用16MHz通讯,W25Q64 在标准 SPI 模式(单线模式)下的最大 SPI 时钟频率为 80 MHz,所以只要硬件设计的好,速率完全可以满足。USE_LFN(Use Long Filename): 支持长文件名,并指定使用栈空间为缓冲区,这里不建议使用,因为这个支持很耗费flash,如果你的单片机小于256k可能都配不上这个功能,只能限制一下自己的程序,控制文件名长度了。

andylauren的专栏 1575

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

FatFs 之一 R0.13c版源码目录文件、函数、全配置项详解及移植说明

目前,最新版本为 R0.13c。相比于之前的版本,源码有了一定的变化。FatFs 的源码包中,文件非常简单。其源码目录结构如下所示(对于简单的文件以注释的形式给出,核心源码下文会详细说明

技术干货 1万+

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

FATFS文件管理

免费开源的 FAT/exFAT 文件系统模块,标准 C 语言(ANSI C C89)编写,支持 FATl2、FATl6 和 FAT32,支持多个存储媒介;有独立的缓冲区,可以对多个文件进行读/写。FATFS 的源码及英文详述,大家可以在:http://elm-chan.org/fsw/ff/00index_e.html 网站下载到,source文件夹详情:FATFS模块移植时我们一般修改上面两个文件。

qq_52117635的博客 1233
上一篇: fatfs检查DBR,判断文件系统类型
下一篇: fatfs中dir_clear函数说明
freedomAfish
博客等级 码龄15年 19粉丝 47原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值