MC9RS08LA8串行通信实战:SCI与SPI寄存器配置与调试指南

AI助手已提取文章相关产品:

1. 项目概述与核心价值

在嵌入式开发的日常里,串行通信就像设备之间的“语言”,而MCU内置的通信模块则是决定这门“语言”是否流利、高效的关键。今天,我们就来深入聊聊飞思卡尔(现恩智浦)MC9RS08LA8这颗经典8位MCU里的两个核心通信模块:SCI(串行通信接口)和SPI(串行外设接口)。如果你正在用这颗芯片,或者对嵌入式串行通信的底层细节感兴趣,那这篇从寄存器手册里“啃”出来的实战解析,应该能帮你避开不少坑。

SCI,本质上就是大家熟悉的UART(通用异步收发器),它不依赖时钟线,靠起始位、停止位和约定的波特率来同步数据。在LA8上,它常用于连接电脑串口进行调试打印,或者跟一些老式的传感器、GPS模块打交道。它的价值在于简单、可靠,距离可以拉得比较远,但速度相对慢些。SPI则完全不同,它是同步通信,有独立的时钟线领着数据走,主打一个高速和全双工(同时收、发)。在LA8上,你可能会用它来驱动OLED屏幕、读写Flash存储器或者连接高速ADC芯片。它的优势是速度快,协议简单,但需要占用更多IO口,并且通信距离很短。

手册里关于这两个模块的说明虽然详尽,但更像一本字典,直接照着调代码,很容易在唤醒机制、中断处理、时钟相位这些细节上栽跟头。我在这颗芯片上做过几个量产项目,实测下来,把SCI和SPI的“脾气”摸透,系统稳定性能提升一个档次。接下来,我们就抛开那些晦涩的术语,用实际开发的视角,把LA8的SCI和SPI模块拆开揉碎了讲清楚。

2. SCI模块深度解析与实战配置

SCI模块是LA8与外界进行异步串行通信的桥梁。理解它的工作模式,特别是各种唤醒机制和中断处理逻辑,是写出稳定、低功耗通信代码的基础。

2.1 核心寄存器与通信基础

LA8的SCI模块由几个关键寄存器控制,主要是SCIC1、SCIC2、SCIC3、SCID以及状态寄存器SCIS1和SCIS2。配置SCI的第一步,永远是设定波特率。LA8的波特率发生器源是总线时钟(Bus Clock),通过设置 SBR 寄存器来分频。这里有个容易算错的地方:波特率计算公式是 Bus Clock / (16 × SBR) 。假设你的总线时钟是8MHz,想要9600的波特率,那么 SBR = 8,000,000 / (16 * 9600) ≈ 52 。实际计算时务必确认总线时钟频率是否准确,很多通信乱码的根源就在这里。

数据格式通常配置为8位数据位、无校验、1位停止位(8N1),这通过设置 SCIC1 寄存器的 M 位(数据模式)和 PE 位(奇偶校验使能)来实现。对于大多数应用, M=0 选择8位数据, PE=0 关闭校验就足够了。使能发送和接收则分别设置 TE RE 位为1。

2.2 唤醒机制:空闲线唤醒与地址标记唤醒

这是SCI模块的精华,尤其在多机通信或低功耗应用中至关重要。手册里提到了两种唤醒方式,对应 SCIC1 寄存器的 WAKE 位。

2.2.1 空闲线唤醒 (WAKE = 0) 当接收器处于休眠状态( RWU=1 )时,它一直在监听RxD线。一旦检测到RxD线保持空闲状态(逻辑‘1’)达到一个完整的字符时间, RWU 位就会被硬件自动清零,接收器“醒来”准备接收数据。

  • 字符时间计算 :一个完整的字符时间包括1位起始位、8或9位数据位(由 M 位决定)、以及1位停止位。所以,对于8位数据( M=0 ),需要检测到10个位时间的空闲;对于9位数据( M=1 ),则需要11个位时间。
  • ILT 位的作用 :这个位决定了空闲检测的起始点。 ILT=0 时,空闲计数器在起始位之后就开始计数,这意味着停止位和前一帧数据末尾的‘1’都会被计入空闲时间。 ILT=1 时,计数器要等到一个完整的停止位时间过后才开始,这样能确保检测到的是帧与帧之间真正的空闲线,避免因上一帧数据末尾的‘1’而产生误唤醒。 在大多数多机通信应用中,建议设置 ILT=1 ,以获得更可靠的帧间隔检测。
  • RWUID :这个位控制空闲状态是否触发 IDLE 标志。如果 RWUID=0 ,在 RWU=1 (休眠)期间检测到空闲并不会置位 IDLE 标志,接收器默默醒来等待数据。如果 RWUID=1 ,那么任何空闲条件都会置位 IDLE 标志。通常在多机通信的从机中,我们设置 RWUID=0 ,避免无关的空闲信号产生中断。

2.2.2 地址标记唤醒 (WAKE = 1) 在这种模式下,接收器通过检查接收到的字符的最高位(MSB)来唤醒。当 RWU=1 时,如果收到一个字符的MSB是‘1’,接收器会立即在停止位接收之前清除 RWU 位并置位 RDRF 标志,即使这个字符的大部分位都是在休眠期间接收的。

  • 应用场景 :这种模式常用于“9位数据”的多机协议。主机发送的地址帧,其第9位(或8位模式下的MSB)设置为‘1’;数据帧则设置为‘0’。所有从机初始都休眠,只有收到MSB为‘1’的地址帧才会被唤醒,并检查该地址是否与自己匹配。匹配的从机保持唤醒接收后续数据,不匹配的则重新进入休眠。 这能极大降低从机的功耗和总线负载。
  • 配置要点 :使用地址标记唤醒,必须配合9位数据模式( M=1 )或至少确保数据帧的MSB为‘0’。你需要同时操作 SCID 数据寄存器和 SCIC3 中的 T8 / R8 位来处理第9位。

实操心得 :在调试多机SCI通信时,我强烈建议先用逻辑分析仪抓取总线波形。首先确认波特率是否精确,然后重点看帧间隔。如果你用的是空闲线唤醒,确保主机发送的帧间空闲时间大于一个字符时间。如果用的是地址标记唤醒,则要确认地址字节的最高位是否正确拉高。很多通信不上的问题,根源都在于这些时序细节的错位。

2.3 中断与状态标志的实战处理

LA8的SCI提供了三个独立的中断向量,这比很多只有一个混合中断的MCU要清晰得多,能减少中断服务程序(ISR)内的判断开销。

  1. 发送中断 :由 TDRE (发送数据寄存器空)和 TC (发送完成)标志触发。 TDRE=1 表示可以写入下一个要发送的数据,这是最常用的发送中断源。 TC=1 表示移位寄存器也发送完毕,线路完全空闲,这在需要严格控制时序(比如控制RS485收发器切换方向)时有用。
  2. 接收中断 :由 RDRF (接收数据寄存器满)、 IDLE (线路空闲)、 RXEDGIF (接收边沿中断)等标志触发。最常用的是 RDRF
  3. 错误中断 :由 OR (溢出)、 NF (噪声)、 FE (帧错误)、 PF (校验错误)标志触发。 务必使能错误中断,并在ISR中检查这些标志,这是发现物理层问题(如线缆干扰、波特率失配)的关键。

状态标志的清除有严格的顺序,这是新手最容易出错的地方:

  • RDRF :读取 SCIS1 (状态寄存器1) 然后 读取 SCID 数据寄存器。
  • TDRE :读取 SCIS1 然后 写入 SCID
  • IDLE :读取 SCIS1 然后 读取 SCID
  • TC :读取 SCIS1 然后 写入 SCID (或直接读 SCIS1 后对其写1,具体看手册,LA8通常是前者)。
  • 错误标志 OR , NF , FE , PF ):读取 SCIS1 然后 读取 SCID

一个稳健的接收中断服务函数(ISR)模板如下:

#pragma interrupt_handler SciRx_ISR
void SciRx_ISR(void) {
    unsigned char status = SCIS1; // 必须先读取状态寄存器
    unsigned char data;

    if (status & (SCI_SCIS1_OR_MASK | SCI_SCIS1_NF_MASK | SCI_SCIS1_FE_MASK | SCI_SCIS1_PF_MASK)) {
        // 处理错误:记录日志、复位接收状态等
        // ...
        data = SCID; // 错误时也必须读数据寄存器以清除标志
        return;
    }

    if (status & SCI_SCIS1_RDRF_MASK) {
        data = SCID; // 读取有效数据
        // 将数据放入环形缓冲区(Ring Buffer)
        rx_buffer[rx_in++] = data;
        // ... 缓冲区处理逻辑
    }

    // 如果需要处理IDLE中断
    if (status & SCI_SCIS1_IDLE_MASK) {
        data = SCID; // 清除IDLE标志
        // 处理一帧数据接收完成
        // ...
    }
}

2.4 高级功能与低功耗考量

9位数据模式 :通过设置 SCIC1 M=1 启用。第9位数据存放在 SCIC3 寄存器的 T8 (发送)和 R8 (接收)中。 关键点 :在写入发送数据寄存器 SCID 之前,必须先写入 T8 位,以确保第9位和数据字节被同时送入缓冲区。对于接收,在读取 SCID 后,应立即读取 SCIC3 以获取 R8 位。

停止模式下的行为 :这是低功耗设计必须关注的。

  • Stop3模式 :SCI模块时钟停止,但寄存器状态保持。如果使能了 RXEDGIE (接收边沿中断使能),那么在Stop3模式下,RxD引脚上的有效边沿仍然可以唤醒MCU。 注意 :进入Stop3前,必须确保没有正在进行的SCI收发,否则会破坏通信。
  • Stop1/Stop2模式 :SCI模块完全掉电,所有寄存器内容丢失。唤醒后必须重新初始化整个SCI模块。

环回模式与单线模式

  • 环回模式 ( LOOPS=1 , RSRC=0 ):发送器输出内部连接到接收器输入,外部RxD引脚用作普通IO。这用于 自测试 ,在不连接外部硬件的情况下验证SCI驱动程序是否正确。
  • 单线模式 ( LOOPS=1 , RSRC=1 ):实现半双工通信。发送器和接收器都连接到TxD引脚,RxD引脚释放为普通IO。方向由 TXDIR 位控制: TXDIR=1 时,TxD为输出(发送模式); TXDIR=0 时,TxD为输入(接收模式)。 这在需要节省IO引脚或连接某些半双工设备(如某些RS485收发器)时非常有用。

3. SPI模块深度解析与实战配置

SPI是同步、全双工的高速通信主力。LA8的SPI模块功能完整,支持主从模式、多种时钟格式和单线双向通信。

3.1 SPI系统架构与引脚功能

SPI通信需要四根线: SPSCK (时钟)、 MOSI (主机输出从机输入)、 MISO (主机输入从机输出)、 SS (从机选择)。LA8的SPI引脚与LCD等功能复用,特别是PTA0-PTA3。 手册中特别警告了“开漏模式” :当这些引脚用于LCD功能时,会呈现开漏行为。如果同时要用作SPI,必须在外部加上拉电阻,或者通过设置 LCDC1 寄存器的 FCDEN 位来避免开漏模式(前提是 VLL3 连接了外部电源)。忽视这一点,SPI输出高电平可能无法达到电压要求,导致通信失败。

SPI模块的核心是一个8位移位寄存器,配合双缓冲的发送和接收数据寄存器。这种双缓冲结构允许在移位发送当前字节的同时,准备下一个要发送的字节,并在接收完成一个字节后,立即开始接收下一个,从而实现连续高速传输。

3.2 主从模式配置与时钟格式选择

主从模式选择 :通过 SPIC1 寄存器的 MSTR 位设置。 MSTR=1 为主机, MSTR=0 为从机。主机负责产生时钟 SPSCK ,并主动发起传输。

时钟格式 :这是连接不同SPI外设时最容易出错的地方。由 CPOL (时钟极性)和 CPHA (时钟相位)两个位组合成四种模式(Mode 0-3)。

  • CPOL :决定时钟空闲时的电平。 CPOL=0 ,时钟空闲时为低电平; CPOL=1 ,空闲时为高电平。
  • CPHA :决定数据在时钟的哪个边沿被采样。
    • CPHA=0 :数据在时钟的 第一个边沿 (即 CPOL 变化后的第一个边沿)被采样,在下一个边沿切换。
    • CPHA=1 :数据在时钟的 第二个边沿 被采样,在同一个边沿切换。

为了直观理解,我们记住两个最常用的模式:

  • Mode 0 : CPOL=0 , CPHA=0 。时钟空闲低,数据在上升沿采样,下降沿切换。
  • Mode 3 : CPOL=1 , CPHA=1 。时钟空闲高,数据在下降沿采样,上升沿切换。

如何选择?完全取决于你的从设备(如Flash、传感器)的数据手册要求。 必须严格匹配,否则数据会错位。图16-10和16-11是理解这两种相位关系的关键。 CPHA=1 时,从机的 SS 信号可以在两次传输间保持低电平;而 CPHA=0 时, SS 信号必须在两次传输间拉高至少一段时间。

3.3 寄存器详解与数据传输流程

关键寄存器操作:

  1. SPI控制寄存器1 ( SPIC1 ) :核心控制寄存器。

    • SPE :SPI使能位。 重要提示 :手册警告,禁止在 SPE=0 (禁用SPI)的同时更改 CPHA 位。必须先改 CPHA ,再使能 SPE ,或者先禁能 SPE ,改完 CPHA 后再使能。顺序反了会导致不可预料的行为。
    • SPTIE , SPIE :发送缓冲空中断使能、接收缓冲满/模式错误中断使能。
    • LSBFE :数据移位顺序, 0 为MSB(最高位)在前, 1 为LSB(最低位)在前。同样需与外设匹配。
  2. SPI控制寄存器2 ( SPIC2 )

    • MODFEN :模式错误功能使能。在主机模式下( MSTR=1 ),此位决定 SS 引脚的功能。
      • MODFEN=1 , SSOE=0 SS 引脚作为模式错误输入。如果另一个主机拉低了此引脚, MODF 标志置位,SPI自动切换为从机模式以防止总线冲突。 在多主机系统中必须启用此功能。
      • MODFEN=1 , SSOE=1 SS 引脚作为自动的从机选择输出。当SPI作为主机时,此引脚会自动在传输开始时拉低,传输结束后拉高。 这是连接单个从机时最方便的配置。
    • SPC0 , BIDIROE :用于配置单线双向模式。 SPC0=1 启用单线模式,此时主设备用 MOSI 引脚作为双向数据线( MOMI ),从设备用 MISO 引脚作为双向数据线( SISO )。 BIDIROE 控制该引脚是输入( 0 )还是输出( 1 )。
  3. SPI波特率寄存器 ( SPIBR ) :设置主机通信速率。波特率 = Bus Clock / (Prescaler × Rate Divisor)。 SPPR[2:0] 选择预分频值(1-8), SPR[2:0] 选择速率除数(2-256)。具体值查表16-5和16-6。例如,总线时钟8MHz,欲得1Mbps速率,则总分频需为8,可配置 SPPR=2 (分频3), SPR=0 (分频2),合计分频6,得到约1.33Mbps;或 SPPR=1 (分频2), SPR=1 (分频4),合计分频8,得到准确的1Mbps。

  4. SPI状态寄存器 ( SPIS )

    • SPTEF :发送缓冲区空标志。 这是启动发送的关键 。只有当 SPTEF=1 时,才能向 SPID 写入数据,否则写入会被忽略。清除方法是先读 SPIS (此时 SPTEF=1 ),再写 SPID
    • SPRF :接收缓冲区满标志。当 SPRF=1 时,可以从 SPID 读取接收到的数据。清除方法是先读 SPIS (此时 SPRF=1 ),再读 SPID
    • MODF :模式错误标志。清除方法是先读 SPIS (此时 MODF=1 ),再写 SPIC1

标准SPI数据传输流程(主机模式,查询方式):

// 1. 初始化SPI为主机,设置时钟模式、波特率等
SPIC1 = 0x50; // SPE=1, MSTR=1, CPOL=0, CPHA=0 (Mode 0)
SPIBR = 0x32; // 设置波特率,例如分频因子为50

// 2. 发送一个字节
void SPI_WriteByte(unsigned char data) {
    while(!(SPIS & 0x20)); // 等待 SPTEF == 1
    SPIS; // 读状态寄存器以清除SPTEF标志(某些版本需此操作,LA8手册明确要求���
    SPID = data; // 写入数据,启动传输
}

// 3. 发送并同时接收一个字节(全双工)
unsigned char SPI_TransferByte(unsigned char data) {
    while(!(SPIS & 0x20)); // 等待 SPTEF == 1
    SPIS; // 读状态寄存器
    SPID = data; // 写入数据,启动传输
    while(!(SPIS & 0x80)); // 等待 SPRF == 1
    SPIS; // 读状态寄存器以清除SPRF标志
    return SPID; // 读取接收到的数据
}

3.4 单线双向模式与从机模式要点

单线双向模式 :当引脚紧张时,可以使用此模式将SPI简化为半双工的两线制(时钟线+双向数据线)。配置 SPC0=1 ,主机使用 MOSI 引脚,从机使用 MISO 引脚。通过 BIDIROE 位控制数据方向。 注意 :此时主机和从机不能同时驱动数据线,需要软件协议来协调收发时机,避免冲突。

从机模式要点

  1. SS 引脚管理 :从机的 SS 引脚必须由外部主机控制。在 CPHA=0 时, SS 必须在每次传输前拉低,传输间拉高。在 CPHA=1 时, SS 可以在一次会话中保持低电平,连续传输多个字节。
  2. 时钟同步 :从机的移位时钟完全由主机的 SPSCK 提供。从机无法控制通信速率。
  3. 数据缓冲 :从机也需要及时读取 SPID 中的数据,否则会发生溢出,且无错误标志! 从机程序必须在 SPRF 置位后尽快读取数据
  4. 发送数据 :从机要发送数据给主机,只需在主机发起传输前,将数据写入自己的 SPID 寄存器。当主机时钟到来时,从机会自动将数据移出。如果从机没有准备好数据,可能会发送旧数据或未定义值。

4. 常见问题排查与实战技巧

在实际项目中,调试SCI和SPI通信总会遇到各种问题。下面是我总结的一些常见坑点和排查技巧。

4.1 SCI通信问题排查表

现象 可能原因 排查步骤与解决方法
完全无收发 1. 引脚配置错误
2. 波特率严重失配
3. 硬件连接问题(如线接反)
1. 确认 TE / RE 位已使能,引脚复用功能已切换到SCI。
2. 用示波器或逻辑分析仪测量TxD引脚,看是否有波形。计算波特率分频值是否准确。
3. 检查RxD和TxD是否交叉连接,地线是否共地。
收到乱码 1. 波特率轻微偏差
2. 数据格式(数据位、停止位、校验位)不匹配
3. 电气干扰
1. 计算系统时钟和波特率分频,确保误差在可接受范围(通常<2%)。
2. 确认通信双方的数据格式设置完全一致。
3. 检查线路,过长或未屏蔽的线路易受干扰,可尝试降低波特率或增加滤波电容。
只能发不能收(或反之) 1. 单向使能位未设置
2. 对方设备故障或配置错误
3. 中断或查询逻辑错误
1. 检查 TE RE 位。
2. 用自发自收(环回模式)测试MCU自身功能是否正常。
3. 检查接收中断是否使能,或查询 RDRF 的代码逻辑是否正确。
多机通信中从机不唤醒 1. 唤醒模式( WAKE )设置错误
2. 空闲时间或地址标记不符合要求
3. RWU 位软件控制逻辑错误
1. 确认所有从机 WAKE 位设置一致,且与主机协议匹配。
2. 用逻辑分析仪测量帧间隔是否大于一个字符时间(空闲线唤醒),或地址字节最高位是否为1(地址标记唤醒)。
3. 确保从机在正确时机(如地址不匹配后)置位 RWU
进入低功耗模式后通信异常 1. 在Stop1/2模式后未重新初始化SCI
2. 进入Stop3时仍有数据传输
1. 从Stop1/2唤醒后,必须完整重新配置SCI所有寄存器。
2. 在执行 STOP 指令前,确保 TC 标志置位(发送完成),且没有未处理的接收数据。

4.2 SPI通信问题排查表

现象 可能原因 排查步骤与解决方法
主从设备无通信 1. SS 信号问题(从机未选中)
2. 时钟模式( CPOL , CPHA )不匹配
3. 主从模式( MSTR )设置错误
1. 测量从机 SS 引脚电平,在传输期间必须为低。检查主机 SSOE MODFEN 配置。
2. 这是最高频问题! 用逻辑分析仪同时抓取 SPSCK , MOSI , MISO ,对照数据手册的时序图,检查时钟极性和采样边沿。
3. 确认主机 MSTR=1 ,从机 MSTR=0
数据错位(如0x55收成0xAA) 1. 数据位移位顺序( LSBFE )不匹配
2. 时钟相位( CPHA )错误导致采样点偏移一位
1. 检查主从设备的 LSBFE 设置,必须同为MSB优先或LSB优先。
2. 如果错位是镜像的(高位变低位),很可能是 LSBFE 问题;如果是有规律的偏移,则是 CPHA 问题。
只能发送一次,后续发送失败 1. 状态标志清除顺序错误
2. SPTEF 未有效等待或判断
1. 严格遵循“读状态寄存器 -> 读/写数据寄存器”的顺序来清除 SPTEF SPRF
2. 确保在写 SPID 前,循环等待 SPTEF==1
从机接收数据丢失 1. 从机处理速度跟不上主机
2. 从机未及时读取 SPID 导致溢出
1. 降低主机SPI时钟频率。
2. 优化从机代码,确保在下一个字节传输完成前( SPRF 置位后),已读取当前字节。SPI从机溢出无标志,只能靠软件保证。
多从机系统中通信冲突 1. 多个从机 MISO 线冲突
2. 模式错误( MODF )未处理
1. 确保未选中的从机其 MISO 引脚为高阻态(通常通过禁用SPI或配置为输入实现)。
2. 在多主机或配置复杂的系统中,使能 MODFEN 并编写 MODF 错误处理程序,在总线冲突时进行恢复。

4.3 独家调试与优化技巧

  1. 善用环回模式进行自检 :在编写完SCI或SPI驱动后,第一件事就是配置为环回模式(SCI的 LOOPS=1, RSRC=0 ;SPI则内部短接 MOSI MISO ),发送一组已知数据并接收,验证底层驱动和中断逻辑是否正确。这能有效隔离硬件问题。

  2. 逻辑分析仪是你的最佳伙伴 :几十块钱的简易逻辑分析仪配合上位机软件(如Saleae Logic),能直观显示时钟和数据线的波形、时序、电平。遇到通信问题,第一时间抓波形,比对数据手册的时序图,绝大部分问题都能瞬间定位。

  3. SPI时钟极性与相性的快速记忆法 :我习惯这样记—— CPOL 决定时钟空闲时的“静态”电平; CPHA 决定数据在“第一个跳变沿”还是“第二个跳变沿”被采样。对于常见SPI Flash(如W25Q系列),通常是Mode 0和Mode 3。抓一次正确波形,记住形状,以后照搬就行。

  4. 中断与DMA的权衡 :LA8的SPI没有DMA,但对于高速连续传输,频繁的中断仍可能成为瓶颈。此时可以采用“中断+缓冲区”的方式。在发送中断中,从发送缓冲区加载下一个数据;在接收中断中,将数据快速存入接收缓冲区。主循环再处理缓冲区数据。避免在中断中进行复杂计算或长时间操作。

  5. 电源与接地是通信稳定的基石 :尤其是SPI在较高频率(如几MHz)下工作时,电源纹波和地线噪声会严重影响信号质量。确保MCU和SPI外设的电源去耦电容(通常0.1uF和10uF并联)尽可能靠近芯片电源引脚放置,并保证有良好的共地。

  6. 上拉电阻的必要性 :对于开漏或开集输出的信号线(如某些器件的 MISO ,或配置问题下的引脚),必须加上拉电阻(通常4.7kΩ-10kΩ),否则高电平无法建立。这也是LA8 SPI引脚与LCD复用时要特别注意的。

最后,嵌入式通信调试需要耐心和条理。从电源、时钟、引脚配置等基础查起,再用工具验证波形,最后分析软件逻辑。把MC9RS08LA8的SCI和SPI这些寄存器细节吃透,再遇到其他MCU的类似模块,你也能很快上手,因为核心思想都是相通的。

您可能感兴趣的与本文相关内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值