4.STM32 驱动 74HC138 译码器点亮 LED:寄存器配置与程序优化实战

电子设计实战:基于74HC595与三八译码器的16*16LED点阵屏驱动电路深度解析 本文深入解析了基于74HC595移位寄存器与三八译码器的16*16LED点阵屏驱动电路设计。通过详细的核心器件选型、电路架构设计及软件驱动优化,实现高效稳定的LED控制方案,解决亮度不均、扫描闪烁等常见问题,并探讨多屏级联等进阶应用。 阅读详情

摘要:本文以 STM32 驱动 74HC138 译码器点亮 LED 为例,先结合原理图与真值表分析 3 输入 8 输出的译码逻辑,再通过直接操作寄存器完成 RCC 时钟使能、PC3 输出配置与 E3 使能,最终点亮 LED10。随后针对直接寄存器操作晦涩难懂的问题,依次介绍宏定义、结构体与库函数三种程序优化方式,重点讲解宏定义方式下 GPIOA_CRL 寄存器中 MODE 位与 CNF 位的设置/清除逻辑,以及 PA0、PA1、PA4 推挽输出模式的配置方法。

项目从0->1步骤:

  • 看实物——明确自己的需求

  • 看原理图——1、高电平亮还是低电平亮 2、连到哪个引脚了——PC3

  • 看自己的芯片工作原理

  • 开启 RCC 时钟使能

  • 模式——输入和输出配置——配置为输出

  • 配置输出类型——推挽输出(开漏输出)

  • 配置输出速度——输出速度如何选择?需要功耗低的场景,并且数据传输速率不高——低速;数据传输速度高时必须用高速

  • 输出数据

  • 总结——找地址 RCC 的地址——对应位写数据

  • 优化:使用结构体封装好寄存器——声明结构体变量的方式定义地址

一、利用74HC138译码器点亮LED

1. 分析原理图(3 输入 8 输出)

138-A、138-B、138-C 对应 PA0、PA1、PA4

2. 结合真值表来辅助判断 LED 亮灭

3. 通过寄存器配置来点亮 LED

代码实现:

RCC 使能:

*(volatile unsigned int *)0x40021018 |=(1<<4);//RCC时钟使能 C

E3 使能:

	//PC3输出模式
	*(volatile unsigned int *)0x40011000 |=(1<<12);	//PC3
	*(volatile unsigned int *)0x40011000 &=~(1<<13);//MODE 01
	//PC3推挽输出模式
	*(volatile unsigned int *)0x40011000 |=~(1<<14);	//PC3
	*(volatile unsigned int *)0x40011000 &=~(1<<15);//CNF 01
	*(volatile unsigned int *)0x4001100C |=(1<<3);	// PC3置1  E3使能

输出数据寄存器

总结:
最终点亮 LED10。

二、程序优化

上述直接对寄存器操作的方法比较晦涩难懂。

所以我们可以使用一些方法简化代码,同时提高程序的可读性。

方式:

1. 宏定义方式优化

2. 结构体方式优化

3. 库方式编写

1. 宏定义方式优化

代码实现:

//宏定义:将GPIOA端口配置低寄存器(CRL)的地址0x40010800映射为宏GPIOA_CRL
//CRL寄存器控制PA0~PA7共8个引脚,每个引脚占用4位(MODE[1:0] + CNF[1:0])
#define GPIOA_CRL *(volatile unsigned int *)0x40010800

//==================== PA0 配置 ====================
//PA0输出模式:设置MODE位为01(输出模式,最大速度10MHz)
	GPIOA_CRL |=(1<<0);	//置位bit0(MODE0),PA0的MODE[1:0] = 01
	GPIOA_CRL &=~(1<<1);//清零bit1(MODE1),确保MODE[1:0] = 01
	//PA0推挽输出模式:设置CNF位为00(通用推挽输出)
	GPIOA_CRL &=~(1<<2);	//清零bit2(CNF0),CNF[1:0] = 00
	GPIOA_CRL &=~(1<<3);//清零bit3(CNF1),确保CNF[1:0] = 00

//==================== PA1 配置 ====================
//PA1输出模式:PA1的4位配置位于bit4~bit7
	GPIOA_CRL |=(1<<4);	//置位bit4(MODE0),PA1的MODE[1:0] = 01
	GPIOA_CRL &=~(1<<5);//清零bit5(MODE1),确保MODE[1:0] = 01
	//PA1推挽输出模式
	GPIOA_CRL &=~(1<<6);	//清零bit6(CNF0),CNF[1:0] = 00
	GPIOA_CRL &=~(1<<7);//清零bit7(CNF1),确保CNF[1:0] = 00

//==================== PA4 配置 ====================
//PA4输出模式:PA4的4位配置位于bit16~bit19
	GPIOA_CRL |=(1<<16);	//置位bit16(MODE0),PA4的MODE[1:0] = 01
	GPIOA_CRL &=~(1<<17);//清零bit17(MODE1),确保MODE[1:0] = 01
	//PA4推挽输出模式
	GPIOA_CRL &=~(1<<18);	//清零bit18(CNF0),CNF[1:0] = 00
	GPIOA_CRL &=~(1<<19);//清零bit19(CNF1),确保CNF[1:0] = 00

2. 结构体方式优化

代码实现:

typedef struct
{
    volatile unsigned int CRL;    /* 0x00 端口配置低寄存器(Pin0~7) */
    volatile unsigned int CRH;    /* 0x04 端口配置高寄存器(Pin8~15) */
    volatile unsigned int IDR;    /* 0x08 端口输入数据寄存器 */
    volatile unsigned int ODR;    /* 0x0C 端口输出数据寄存器 */
    volatile unsigned int BSRR;   /* 0x10 端口位设置/清除寄存器 */
    volatile unsigned int BRR;    /* 0x14 端口位清除寄存器 */
    volatile unsigned int LCKR;   /* 0x18 端口配置锁定寄存器 */
} GPIO_TypeDef;

3.使用库(HAL LL STD)进行编程

下一篇文章单开一个文档进行详解;

三、总结

本文以 STM32 驱动 74HC138 译码器点亮 LED10 为主线,完整走通了从硬件分析到软件实现再到代码优化的全过程,核心步骤可概括为以下三个阶段:

  • 原理图与真值表分析:确认 138-A、138-B、138-C 分别对应 PA0、PA1、PA4,结合 3 输入 8 输出的译码逻辑与真值表,判断 LED 的亮灭条件。
  • 寄存器直接操作:依次完成 RCC 时钟使能、PC3 输出模式与推挽输出配置、E3 使能,最终通过输出数据寄存器点亮 LED10。
  • 程序优化:针对直接操作寄存器晦涩难懂的问题,依次引入宏定义、结构体与库函数三种方式,在简化代码的同时提升可读性与可维护性。

其中宏定义方式重点讲解了 GPIOA_CRL 寄存器中 MODE 位与 CNF 位的设置/清除逻辑,以及 PA0、PA1、PA4 推挽输出模式的配置方法,这也是理解 STM32 GPIO 底层配置的关键。

四、参考资料

  • STM32 参考手册(Reference Manual):GPIO 寄存器描述、RCC 时钟使能相关章节。
  • 74HC138 数据手册(Datasheet):3 线-8 线译码器真值表与引脚功能说明。
  • STM32 标准外设库 / HAL 库 / LL 库官方文档:GPIO 配置接口说明。

五、下篇预告

本文介绍的宏定义与结构体方式虽然已经比直接操作寄存器清晰不少,但仍有大量底层细节需要开发者自行维护。下一篇文章将单开一个文档,详细讲解如何使用库函数(HAL、LL、STD)进行编程,借助官方封装好的接口进一步简化 GPIO 配置流程,让代码更简洁、更易移植,敬请期待。

基于STM32与Proteus的八位数码管动态显示仿真实现 本文详细介绍了基于STM32单片机与Proteus仿真软件实现八位数码管动态显示的完整过程。通过分析动态扫描原理,结合74HC245驱动芯片与74HC138译码器构建硬件电路,并利用STM32CubeMX与Keil进行软件编程,最终在Proteus中成功仿真。文章还提供了常见问题排查与功能扩展思路,是学习嵌入式系统仿真设计的绝佳实践案例。 阅读详情

相关推荐

蓝桥杯国赛数码管实战:从动态扫描到系统集成的嵌入式设计精解

数码管作为嵌入式系统中最经典的人机交互显示器件,其驱动原理是理解嵌入式硬件接口与实时控制的关键。从基础的静态与动态驱动方式切入,动态扫描通过分时复用IO口,利用人眼视觉暂留实现多位数显示,其核心在于精准的时序控制与扫描频率平衡。在复杂系统中,数码管常与矩阵键盘、ADC、PWM及各类通信模块协同,构成实时监控与参数设置界面,这对单片机的资源调度与多任务处理能力提出了更高要求。引入74HC595等驱动芯片不仅能扩展IO、增强驱动能力,更是保障系统稳定与安全的重要工程实践。通过定时器中断实现刷新、采用状态机管理交

weixin_33859231的博客 321

别再死记硬背74HC138真值表了!用Arduino+面包板,5分钟搞懂3-8译码器怎么用

本文通过Arduino和面包板实战演示74HC138 3-8译码器的应用,帮助读者摆脱死记硬背真值表的困扰。详细解析了译码器的核心价值、硬件搭建、代码实现及故障排查技巧,并展示了其在数字电子技术中的实际应用场景,如IO扩展和信号转换。

weixin_30905133的博客 637

蓝桥杯嵌入式竞赛STM32F103备考指南:从硬件原理到代码实战

嵌入式系统开发是连接硬件与软件的核心技术领域,其基础在于对微控制器架构、外设驱动和实时操作原理的深入理解。通过掌握GPIO、定时器、ADC、I2C、SPI等关键外设的工作原理,开发者能够实现对传感器数据采集、执行器控制和人机交互的精准调度。这些技术不仅在工业自动化、物联网设备中具有广泛应用价值,更是评估嵌入式工程师能力的重要标尺。本文聚焦于基于STM32F103的竞赛实战,系统梳理了从电路分析、代码调试到系统集成的完整路径,特别针对蓝桥杯嵌入式竞赛中常见的**数码管动态显示**、**ADC多通道采集**等高

weixin_34160277的博客 882

16×16点阵汉字显示:从STM32驱动到贪吃蛇扩展全攻略

LED点阵显示是嵌入式与电子课程设计中的经典课题,以16×16点阵为代表的汉字显示技术,通过256个独立LED的亮灭组合呈现图形文字。其核心原理基于人眼视觉暂留效应,利用动态扫描机制逐行快速刷新,配合74HC595移位寄存器与74HC138译码器可大幅减少IO占用。理解字模提取、显示缓冲区与扫描时序,是解决重影、闪烁等显示问题的关键。该技术广泛应用于课程设计、广告字幕、时钟显示等场景,并可在STM32平台上进一步扩展为贪吃蛇游戏,实现显示与交互的深度融合。从点阵选型、硬件搭建到软件分层实现,完整梳理设计流程

weixin_34269583的博客 423

基于STM32的NES游戏机硬件实现与实时仿真

NES游戏机是8位时代经典嵌入式系统代表,其核心依赖6502 CPU指令集、PPU图像处理与NTSC视频时序协同。理解其工作原理需掌握指令模拟、帧同步控制、DMA音频缓冲等关键技术,具备极强的嵌入式实时性训练价值。在资源受限的MCU平台(如STM32F407)上实现稳定运行,涉及精确的VSYNC锚点中断、事件驱动PPU状态机与GPIO级手柄协议解析,广泛应用于教学实践、复古终端开发与软硬协同设计验证。本方案以国产开发板为载体,完整覆盖从ROM加载、视频DAC输出到耳机音频放大的全链路工程实现。

weixin_42509888的博客 161

51单片机I/O口扩展实战:8255A并行接口芯片原理与应用

在嵌入式系统与微控制器开发中,I/O口资源管理是核心基础。当单片机原生引脚不足时,并行I/O扩展技术提供了一种高效解决方案,其原理是通过数据总线、地址总线和控制总线,以内存映射方式与CPU通信,实现一次传输多位数据,兼顾速度与直接控制。这项技术的工程价值在于能在不更换主控芯片的前提下,显著提升系统的外设连接能力,降低成本,尤其适用于课程设计、毕业设计及传统设备改造等场景。以经典的8255A可编程并行接口芯片为例,它作为【内存映射I/O】的典型代表,通过可编程的24个I/O引脚,完美解决了51单片机在驱动矩阵

weixin_34212762的博客 398

51单片机硬件四件套:电容、三极管、74HC245与74HC138实战解析

在嵌入式开发中,单片机并非孤立运行的纯软件平台,而是软硬深度耦合的系统;其稳定性和可调试性高度依赖基础硬件元件的正确选型与应用。电容承担电源滤波、复位延时和晶振匹配三重角色,直接影响系统上电可靠性与时钟精度;三极管作为IO口驱动能力扩展的关键器件,解决51单片机灌电流不足与负载适配问题;74HC245实现总线方向控制与电气隔离,避免读写冲突;74HC138则通过地址译码高效管理多外设资源。这些元件共同构成最小系统启动、信号驱动、数据交互与资源调度四大技术支柱,是LED点灯进阶为工业级温控仪等真实项目落地的底

weixin_33971977的博客 457

STM32驱动08接口32x64LED点阵屏:从硬件连接到代码实现

LED点阵屏是嵌入式显示领域的常见外设,广泛应用于门头屏、停车位屏和车间看板等场景。08接口(HUB08)作为行业通用的16针信号标准,通过R1/R2数据线、A/B/C/D行选线、CLK时钟及LAT锁存等信号,实现了控制卡与单元板的标准化连接。本文从接口定义与硬件接线出发,讲解STM32F103基于GPIO模拟时序驱动32x64单色点阵屏的完整过程,重点剖析1/16扫描原理、显示缓冲区设计、74HC595级联与74HC138行译码的配合机制。同时提供可直接移植的刷新代码、取模设置方法以及常见故障排查技巧,帮

weixin_27252001的博客 299

嵌入式芯片开发入门:以STM32为锚点的四年能力成长路径

嵌入式系统是软硬件深度耦合的技术体系,其核心在于用代码精确控制物理世界中的电压、时序与信号交互。理解C语言指针与内存模型是操作寄存器的前提,掌握UART/SPI/I2C等通信协议本质是实现芯片间可靠协同的基础能力。STM32凭借成熟生态、丰富资料和工业级认可度,成为初学者构建芯片认知最高效的入口;而嵌入式开发的终极价值,体现在能独立完成从寄存器配置、外设驱动到RTOS整合的全栈闭环,并支撑BMS、工控、汽车电子等真实场景的稳定交付。本文聚焦电子信息本科生如何以芯片为锚点,分阶锤炼指令级控制力、协议级协同力与

weixin_34208185的博客 322

LED点阵屏系统设计全解析:从原理、取模到仿真与实物调试

单片机是嵌入式系统的核心,LED点阵屏作为常见显示终端,广泛应用于广告屏、车站信息屏等场景。其工作原理基于动态扫描:通过分时点亮各行LED,利用人眼视觉暂留形成完整图像,从而以少量IO口驱动大量灯珠。字模是连接汉字与点阵数据的桥梁,取模方向、高位在前/在后及阴阳码设置都会直接影响显示结果。在Proteus中仿真可快速验证逻辑,但实物调试更需关注行列驱动、595级联、138译码及电源稳定性等细节。本文从基础概念出发,结合字模软件操作、驱动电路设计与常见问题排查,系统梳理LED点阵屏从仿真到实物的完整工程链路,

weixin_34413802的博客 418

STM32F103驱动P5全彩LED点阵屏的亚微秒级时序实现

HUB75接口是一种对时间精度极度敏感的并行显示接口,其本质是主控与LED模组间签订的物理层‘时间契约’,要求CLK边沿抖动≤5ns、OE关闭延迟≤200ns。STM32F103虽无专用LED控制器,但通过裸机汇编循环、BSRR寄存器直写、NOP精准延时等底层时序控制手段,可将72MHz主频转化为亚微秒级确定性输出能力。该技术路径规避了PWM抖动陷阱和中断不确定性,支撑60Hz+稳定刷新与高清动图播放,在智能灯控、户外广告屏、教学演示等嵌入式视觉场景中具备高性价比落地价值。

weixin_32349093的博客 238

STM32F1驱动DHT11实战:从硬件协同到工业级可靠性设计

单总线传感器(如DHT11)是嵌入式系统中典型的低功耗、低成本环境感知方案,其核心挑战在于微秒级时序控制与电源完整性保障。基于Cortex-M3内核的STM32F1系列凭借确定性中断响应、精准GPIO翻转能力及成熟外设映射,成为实现该类通信的理想平台。技术价值体现在无需复杂协议栈即可完成物理层精确控制,适用于智能农业、冷链监控等边缘感知场景。本文聚焦STM32F1与DHT11的深度协同——涵盖时钟树配置、GPIO硬件模式选择、单总线微秒延时实现、LDO电源噪声抑制及PCB抗干扰布线,并延伸至状态机驱动设计、

weixin_34067102的博客 367

Keil与Proteus联调仿真:从51到STM32的开发验证全流程

单片机开发中,代码编写与硬件调试往往相互割裂,而仿真技术为嵌入式工程师提供了一条低成本验证路径。Keil作为编译工具链,负责将C语言转换成HEX文件;Proteus则以虚拟硬件环境加载该文件,模拟芯片运行与外围电路响应。两者联动可在不焊接PCB的情况下验证时序逻辑、排查故障,尤其适合课程设计、毕业设计及上板前的预研场景。本文基于Keil与Proteus的完整工具链,梳理版本匹配要点、HEX生成开关、元件库加载等关键操作,并复现16x16点阵扫描驱动与STM32外设移植的典型工程,为开发者提供一套从51单片机

weixin_33874713的博客 315

单片机入门不该先学C语言:硬件感知力才是第一课

单片机开发本质是软硬协同的系统工程,核心在于理解电流行为、时序逻辑与电路物理特性,而非纯软件语法。C语言在此场景中仅作为硬件抽象与状态控制的工具语言,其价值体现在寄存器操作、位运算和结构化逻辑表达上。真正制约初学者进展的,是电路感知力(如分压计算、IO驱动能力)、时序理解力(如UART采样点、I2C起始条件)和调试直觉力(如示波器波形判读、万用表实测验证)。这些底层能力无法通过《C程序设计》教材习得,却直接决定LED能否点亮、传感器是否通信成功。因此,嵌入式入门应以‘最小硬件闭环’为起点——从接线、测压、烧

weixin_29188997的博客 199

51单片机交通灯设计:从定时器中断到硬件驱动全解析

51单片机是嵌入式入门的核心平台,其资源受限、时序敏感、外设协同等特点,决定了它在教学与工程实践中不可替代的地位。理解定时器中断原理、IO口电气特性及动态扫描机制,是掌握单片机底层驱动的关键。尤其在LED控制、数码管显示、按键消抖等典型场景中,AT89C51的12T模式、P0口开漏输出、寄存器级配置等细节,直接关联到系统稳定性与实时性。本文围绕交通灯控制系统这一经典案例,深入剖析51单片机硬件设计与C语言编程的协同逻辑,覆盖最小系统搭建、限流电阻计算、状态机实现、Proteus仿真及实物调试全流程,为初学者

weixin_33884611的博客 342

spring boot 集成cas(一) 服务端搭建

简单点就是统一服务认证,多个系统一次登录。俗称单点登录。

慕孑晨的博客 1957

嵌入式与芯片工程师的四年能力成长路线图

嵌入式系统与芯片开发是软硬协同的深度工程领域,其核心在于建立‘代码-寄存器-信号-物理世界’的全链路认知。从C语言绑定硬件调试器起步,到STM32寄存器级外设驱动、FreeRTOS上下文切换机制理解,再到RK3588等SoC芯片手册逆向解读与DFT验证,技术纵深由真实Bug调试数量决定。这一路径覆盖硬件交互层(如STM32)、实时系统层(如FreeRTOS)、硅基实现层(如芯片后端基础)和工程验证层(如可测性设计),广泛应用于物联网网关、音视频芯片修复、工业电机控制等场景。掌握ADC通道切换时序、堆栈溢出检

weixin_33904756的博客 326

RK3568下YT8531/YT8521 PHY移植避坑指南:RGMII与设备树详解

嵌入式Linux网络调试中,PHY芯片作为MAC与物理介质之间的桥梁,其驱动配置直接影响网络稳定性。RGMII接口的延时补偿、PHY地址设定以及复位时序是设备树配置中的关键环节,稍有差错便会出现链路已通却无法通信的现象。通过理解PHYLIB框架与mdio总线枚举原理,开发者可以快速定位寄存器级故障。在RK3568等工业级平台中,裕太微YT8531/YT8521凭借高性价比与内核主线支持,成为替代传统方案的热门选择。从设备树模板、内核配置到常见坑点,系统梳理千兆以太网PHY的移植与调试方法,帮助开发者少走弯路

weixin_29189381的博客 212

单片机存储结构入门:RAM/ROM分段、外部内存挂载与地址映射实战

单片机存储结构是理解嵌入式系统运行机制的基础概念,其核心在于程序存储器与数据存储器的独立编址原理,以及内部RAM分段(工作寄存器区、位寻址区、通用RAM区)带来的访问约束。这种哈佛架构设计决定了指令取指与数据读写走不同总线路径,直接影响代码效率、栈空间安全和外设时序控制。技术价值体现在避免内存溢出、中断异常、仿真失真等高频工程问题;典型应用场景包括LED驱动中的栈深度管理、矩阵键盘的XDATA时序配置、ADC缓存的外部RAM协同设计。本文聚焦STC89C52RC等经典51单片机,结合Keil C51的.ma

weixin_34081595的博客 309

本地部署Llama 3中文版:Ollama量化配置与调优指南

大模型本地部署正在成为数据敏感场景下的主流选择。本地运行开源大模型,既能保护隐私又能降低调用成本,但中文能力往往成为瓶颈。以Llama 3为代表的开源模型,需借助中文微调与量化技术,才能在消费级显卡上流畅运行。量化通过压缩模型权重减小显存占用,配合Ollama等推理框架,可快速搭建私有中文AI服务。该方案适用于知识库问答、内容生成、离线助手等场景,并可通过OpenAI兼容接口无缝对接Dify等应用平台。本文从硬件选型、量化等级到Modelfile配置,系统梳理本地部署中文大模型的全链路实战方法与排错思路,帮

weixin_29035405的博客 83

PyTorch 面试题及参考答案(精选100道)

模块是 PyTorch 中用于自动求导的核心模块。它为张量上的所有操作提供了自动求导的功能。在深度学习中,反向传播是一种用于计算损失函数相对于模型参数的梯度的算法。通过梯度,我们可以使用优化算法(如随机梯度下降)来更新模型的参数,从而最小化损失函数。模块的主要作用就是自动计算这些梯度。当我们创建一个张量时,如果将其属性设置为True,那么 PyTorch 会跟踪该张量上的所有操作。在完成前向传播计算出损失函数后,调用方法,模块会自动根据链式法则反向传播计算出所有需要求导的张量的梯度。

大模型大数据攻城狮的专栏 1681

74HC595驱动代码硬核指南:从时序规范到工业级可靠性

74HC595作为最经典的串入并出移位寄存器芯片,其本质是带锁存的双缓冲结构,核心价值在于通过RCLK上升沿实现无闪烁同步更新。驱动稳定性不取决于功能调用,而由纳秒级时序参数(如tSU建立时间、tH保持时间、tW脉宽)严格约束,这些参数直接受MCU GPIO翻转速度、电源电压波动及温度漂移影响。在嵌入式开发中,忽略OE使能延迟、SRCLR异步清零风险或级联时钟偏移,将导致LED乱码、偶发熄灭等量产级故障。本文聚焦真实硬件约束下的可靠驱动实践,覆盖裸机GPIO精准时序控制、多片级联字节对齐、电源噪声自适应延时

weixin_34268310的博客 511

3D打印开源硬件MKS Monster8 V2.0 原理图赏析--更新中

MKS MONSTER8 主板是创客基地为满足市场需求而推出的主板,可用于Voron 2.4机器安装,支Marlin 固件和Klipper固件,支持U盘打印(暂时只有Marlin固件支持),支持TMC驱动UART模式,它包含了3D打印机所需要的主要部件和接口,通过MCU集中控制,是一款功能强大的主板。下面详细分析一下。

我的专栏 7225
上一篇: 3.STM32寄存器点灯实战:从命名规则到GPIO配置全解析
下一篇: 5.STM32 HAL库入门实战:从零驱动蜂鸣器(附完整代码)
硅基造物主
博客等级 码龄4年 17粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值