[转载]DSP28_SysCtrl.h头文件寄存器说明(二)

本文详细介绍了DSP28_SysCtrl.h头文件中的系统控制寄存器组,包括高速和低速外设时钟预分频器寄存器的功能与作用,以及低功耗模式控制寄存器、PLL控制寄存器等关键寄存器的使用方法,并解释了F2812时钟系统的分类。

原文地址:DSP28_SysCtrl.h头文件寄存器说明(二)作者:simplorer

1. 系统控制寄存器组SysCtrlRegs

image

注:(1) 表格中的所有寄存器必须执行EALLOW指令后才可访问

     (2) PLLCR寄存器由XRS‘信号复位为已知的状态

1.1 高速外设时钟预分频器寄存器HISPCP

image

高速外设包括EVA/B,ADC,它们的输入时钟信号由SYSOUTCLK经高速外设分频器分频得到.

1.2. 低速外设时钟预分频寄存器LOSPCP

image

低速外设包括SCI,SPI,McBSP,它们的输入时钟信号由SYSOUTCLK经低速外设分频器分频得到。

为了提高抗干扰性,F2812在内部设置的PLL电路,通过相关寄存器的操作,可以实现内部时钟的倍频。高速外设与低速外设都提到了SYSCLKOUT时钟,那么这个时钟是怎么来的呢?要理解这个问题,就需要知道F2812时钟的分类,大体上来说可以分为四类:SYSCLKOUT时钟组,主要用于CPU定时器与eCan总线;OSCCLK时钟,主要用于看门狗;还有两个就是上面提到的高速外设与低速外设时钟。

image

从上图中可以看出,如果PLL被禁用,系统使用OSCCLK,及外部输出时钟,如果PLL未被禁用,上电后PLL的默认状态是PLL Bypass状态,而配置后,PLL工作在配置状态。

1.3. 低功耗模式控制寄存器LPMCR0

image

1.4. 低功耗模式控制寄存器LPMCR1

image

1.5. PLL控制寄存器PLLCR

image

1.6. 系统控制与状态寄存器SCSR

image

1.7. 看门狗计数器寄存器WDCNTR

image

1.8. 看门狗复位密钥寄存器WDKEY

image

1.9. 看门狗控制寄存器WDCR

image

关于WatchDog只需要注意一点,复位后,WD自动有效,如果想禁用看门狗,必须首先设置SCSR寄存器的WDOVERRIDE位,然后通过WDCR寄存器禁用WD。

D:/8911/src/cbb/extension/driver/mcu/ecsdrv/drv_ecs_interrupt.c: In function 'EcsIntInit': D:/8911/src/cbb/extension/driver/mcu/ecsdrv/drv_ecs_interrupt.c:309:27: warning: comparison is always false due to limited range of data type [-Wtype-limits] [108/218] Building C object .sdk/cbb/extension/driver/mcu/ecsdrv/CMakeFiles/cbb-extension-driver-mcu-ecsdrv.dir/drv_ecs_fifo.c.obj [109/218] Building C object .sdk/cbb/component/systime/CMakeFiles/cbb-component-systime.dir/sys_time.c.obj [110/218] Building C object .sdk/cbb/component/log/CMakeFiles/cbb-component-log.dir/log_buf_mgr.c.obj [111/218] Building C object .sdk/cbb/extension/driver/mcu/ecsdrv/CMakeFiles/cbb-extension-driver-mcu-ecsdrv.dir/drv_ecs_exception.c.obj FAILED: .sdk/cbb/extension/driver/mcu/ecsdrv/CMakeFiles/cbb-extension-driver-mcu-ecsdrv.dir/drv_ecs_exception.c.obj "D:\Program Files (x86)\mingw64\bin\gcc.exe" @.sdk\cbb\extension\driver\mcu\ecsdrv\CMakeFiles\cbb-extension-driver-mcu-ecsdrv.dir\drv_ecs_exception.c.obj.rsp -MD -MT .sdk/cbb/extension/driver/mcu/ecsdrv/CMakeFiles/cbb-extension-driver-mcu-ecsdrv.dir/drv_ecs_exception.c.obj -MF .sdk\cbb\extension\driver\mcu\ecsdrv\CMakeFiles\cbb-extension-driver-mcu-ecsdrv.dir\drv_ecs_exception.c.obj.d -o .sdk/cbb/extension/driver/mcu/ecsdrv/CMakeFiles/cbb-extension-driver-mcu-ecsdrv.dir/drv_ecs_exception.c.obj -c D:/8911/src/cbb/extension/driver/mcu/ecsdrv/drv_ecs_exception.c In file included from D:/8911/src/cbb/extension/driver/mcu/ecsdrv/drv_ecs_exception.c:23: D:/8911/src/cbb/extension/driver/mcu/ecsdrv/drv_ecs_exception.c: In function 'GetSysEccType': D:/8911/src/cbb/extension/driver/mcu/ecsdrv/drv_ecs_sysctrl.h:89:42: error: 'ECS_SMCCFG_BASEADDR' undeclared (first use in this function); did you mean 'ECS_SYSCTRL_BASEADDR'? D:/8911/src/cbb/extension/driver/mcu/ecsdrv/drv_ecs_exception.c:90:29: note: in expansion of macro 'SMC_BANK_ECC' compilation terminated due to -Wfatal-errors. [112/218] Building C object .sdk/cbb/component/log/CMakeFiles/cbb-component-log.dir/log.c.obj [113/218] Building C object .sdk/cbb/extension/base/CMakeFiles/cbb-extension-base.dir/common_ext.c.obj [114/218] Building C object .sdk/HiDSPc0t0/dsp/hidsp_src/app_perf_alm/CMakeFiles/hidspc0t0-dsp-hidsp_src-app_perf_alm.dir/ecs_ecc_poll.c.obj [115/218] Building C object .sdk/HiDSPc0t0/dsp/hidsp_src/resource_mng/CMakeFiles/hidspc0t0-dsp-hidsp_src-resource_mng.dir/ecs_resource.c.obj [116/218] Building C object .sdk/HiDSPc0t0/dsp/odsp_src/odsp_rx_access/CMakeFiles/hidspc0t0-dsp-odsp_src-odsp_rx_access.dir/odsp_rx_flow_thread_adp.c.obj D:/8911/src/HiDSPc0t0/dsp/odsp_src/odsp_rx_access/odsp_rx_flow_thread_adp.c: In function 'ChangeOdspLockThreadPriority': D:/8911/src/HiDSPc0t0/dsp/odsp_src/odsp_rx_access/odsp_rx_flow_thread_adp.c:100:40: warning: unused parameter 'priority' [-Wunused-parameter] [117/218] Building C object .sdk/HiDSPc0t0/dsp/hidsp_src/msa/CMakeFiles/hidspc0t0-dsp-hidsp_src-msa.dir/msa_cmd_list.c.obj -- FAILED: .sdk/HiDSPc0t0/dsp/hidsp_src/app_perf_alm/CMakeFiles/hidspc0t0-dsp-hidsp_src-app_perf_alm.dir/ecs_ecc_driver.c.obj "D:\Program Files (x86)\mingw64\bin\gcc.exe" @.sdk\HiDSPc0t0\dsp\hidsp_src\app_perf_alm\CMakeFiles\hidspc0t0-dsp-hidsp_src-app_perf_alm.dir\ecs_ecc_driver.c.obj.rsp -MD -MT .sdk/HiDSPc0t0/dsp/hidsp_src/app_perf_alm/CMakeFiles/hidspc0t0-dsp-hidsp_src-app_perf_alm.dir/ecs_ecc_driver.c.obj -MF .sdk\HiDSPc0t0\dsp\hidsp_src\app_perf_alm\CMakeFiles\hidspc0t0-dsp-hidsp_src-app_perf_alm.dir\ecs_ecc_driver.c.obj.d -o .sdk/HiDSPc0t0/dsp/hidsp_src/app_perf_alm/CMakeFiles/hidspc0t0-dsp-hidsp_src-app_perf_alm.dir/ecs_ecc_driver.c.obj -c D:/8911/src/HiDSPc0t0/dsp/hidsp_src/app_perf_alm/ecs_ecc_driver.c In file included from D:/8911/src/cbb/extension/driver/mcu/ecsdrv/drv_ecs_interrupt.h:20, from D:/8911/src/cbb/extension/driver/mcu/ecsdrv/drv_ecs_hal.h:17, from D:/8911/src/cbb/extension/driver/hal/mcu_hal.h:46, from D:/8911/src/cbb/base/platform.h:14, from D:/8911/src/cbb/extension/proj_cfg/sd8911v100/proj_cbb_api.h:12, from D:/8911/src/HiDSPc0t0/dsp/hidsp_src/app_perf_alm/ecs_ecc_driver.h:11, from D:/8911/src/HiDSPc0t0/dsp/hidsp_src/app_perf_alm/ecs_ecc_driver.c:15: D:/8911/src/HiDSPc0t0/dsp/hidsp_src/app_perf_alm/ecs_ecc_driver.c: In function 'GetEccAlmAddr': D:/8911/src/cbb/extension/driver/mcu/ecsdrv/drv_ecs_sysctrl.h:91:42: error: 'ECS_SMCCFG_BASEADDR' undeclared (first use in this function); did you mean 'ECS_DMAC_BASEADDR'? D:/8911/src/HiDSPc0t0/dsp/hidsp_src/app_perf_alm/ecs_ecc_driver.c:51:29: note: in expansion of macro 'SMC_BANK_ECC_ADDR' compilation terminated due to -Wfatal-errors. [119/218] Building C object .sdk/HiDSPc0t0/dsp/hidsp_src/app_perf_alm/CMakeFiles/hidspc0t0-dsp-hidsp_src-app_perf_alm.dir/ecs_heart_check.c.obj [120/218] Building C object .sdk/HiDSPc0t0/dsp/hidsp_src/app_perf_alm/CMakeFiles/hidspc0t0-dsp-hidsp_src-app_perf_alm.dir/odsp_log_poll.c.obj [121/218] Building C object .sdk/HiDSPc0t0/dsp/hidsp_src/msa/CMakeFiles/hidspc0t0-dsp-hidsp_src-msa.dir/msa_com_adapter.c.obj [122/218] Building C object .sdk/HiDSPc0t0/dsp/hidsp_src/msa/sd8911v100/CMakeFiles/hidspc0t0-dsp-hidsp_src-msa-sd8911v100.dir/msa_impl_adapter.c.obj [123/218] Building C object .sdk/HiDSPc0t0/dsp/hidsp_src/msa/CMakeFiles/hidspc0t0-dsp-hidsp_src-msa.dir/soft_version.c.obj [124/218] Building C object .sdk/HiDSPc0t0/dsp/hidsp_src/msa/CMakeFiles/hidspc0t0-dsp-hidsp_src-msa.dir/t0_send_cmd_list.c.obj D:/8911/src/HiDSPc0t0/dsp/hidsp_src/msa/t0_send_cmd_list.c: In function 'T0ToT1Cmd': D:/8911/src/HiDSPc0t0/dsp/hidsp_src/msa/t0_send_cmd_list.c:63:37: warning: unused parameter 'cmdPara' [-Wunused-parameter] -- D:/8911/src/HiDSPc0t0/dsp/odsp_src/odsp_rx_access/odsp_rx_flow/rx_flow_drv/sd8911v100/odsp_rx_flow_drv.c: In function 'OdspServiceIntMaskInt0': D:/8911/src/HiDSPc0t0/dsp/odsp_src/odsp_rx_access/odsp_rx_flow/rx_flow_drv/sd8911v100/odsp_rx_flow_drv.c:2365:34: warning: unused parameter 'mask' [-Wunused-parameter] D:/8911/src/HiDSPc0t0/dsp/odsp_src/odsp_rx_access/odsp_rx_flow/rx_flow_drv/sd8911v100/odsp_rx_flow_drv.c: In function 'StdRebuild': D:/8911/src/HiDSPc0t0/dsp/odsp_src/odsp_rx_access/odsp_rx_flow/rx_flow_drv/sd8911v100/odsp_rx_flow_drv.c:2373:22: warning: unused parameter 'chipId' [-Wunused-parameter] D:/8911/src/HiDSPc0t0/dsp/odsp_src/odsp_rx_access/odsp_rx_flow/rx_flow_drv/sd8911v100/odsp_rx_flow_drv.c:2373:35: warning: unused parameter 'win' [-Wunused-parameter] D:/8911/src/HiDSPc0t0/dsp/odsp_src/odsp_rx_access/odsp_rx_flow/rx_flow_drv/sd8911v100/odsp_rx_flow_drv.c: In function 'GetForceAlmVal': D:/8911/src/HiDSPc0t0/dsp/odsp_src/odsp_rx_access/odsp_rx_flow/rx_flow_drv/sd8911v100/odsp_rx_flow_drv.c:2397:28: warning: unused parameter 'almVal' [-Wunused-parameter] D:/8911/src/HiDSPc0t0/dsp/odsp_src/odsp_rx_access/odsp_rx_flow/rx_flow_drv/sd8911v100/odsp_rx_flow_drv.c: In function 'SetRxFecTopInt0En': D:/8911/src/HiDSPc0t0/dsp/odsp_src/odsp_rx_access/odsp_rx_flow/rx_flow_drv/sd8911v100/odsp_rx_flow_drv.c:2409:29: warning: unused parameter 'en' [-Wunused-parameter] [160/218] Building C object .sdk/cbb/extension/driver/mcu/ecsdrv/CMakeFiles/cbb-extension-driver-mcu-ecsdrv.dir/drv_ecs_timer.c.obj ninja: build stopped: subcommand failed. ================ building error ================ D:/8911/src/cbb/extension/driver/mcu/ecsdrv/drv_ecs_interrupt.c: In function 'EcsIntInit': D:/8911/src/cbb/extension/driver/mcu/ecsdrv/drv_ecs_interrupt.c:309:27: warning: comparison is always false due to limited range of data type [-Wtype-limits] [108/218] Building C object .sdk/cbb/extension/driver/mcu/ecsdrv/CMakeFiles/cbb-extension-driver-mcu-ecsdrv.dir/drv_ecs_fifo.c.obj [109/218] Building C object .sdk/cbb/component/systime/CMakeFiles/cbb-component-systime.dir/sys_time.c.obj [110/218] Building C object .sdk/cbb/component/log/CMakeFiles/cbb-component-log.dir/log_buf_mgr.c.obj [111/218] Building C object .sdk/cbb/extension/driver/mcu/ecsdrv/CMakeFiles/cbb-extension-driver-mcu-ecsdrv.dir/drv_ecs_exception.c.obj FAILED: .sdk/cbb/extension/driver/mcu/ecsdrv/CMakeFiles/cbb-extension-driver-mcu-ecsdrv.dir/drv_ecs_exception.c.obj "D:\Program Files (x86)\mingw64\bin\gcc.exe" @.sdk\cbb\extension\driver\mcu\ecsdrv\CMakeFiles\cbb-extension-driver-mcu-ecsdrv.dir\drv_ecs_exception.c.obj.rsp -MD -MT .sdk/cbb/extension/driver/mcu/ecsdrv/CMakeFiles/cbb-extension-driver-mcu-ecsdrv.dir/drv_ecs_exception.c.obj -MF .sdk\cbb\extension\driver\mcu\ecsdrv\CMakeFiles\cbb-extension-driver-mcu-ecsdrv.dir\drv_ecs_exception.c.obj.d -o .sdk/cbb/extension/driver/mcu/ecsdrv/CMakeFiles/cbb-extension-driver-mcu-ecsdrv.dir/drv_ecs_exception.c.obj -c D:/8911/src/cbb/extension/driver/mcu/ecsdrv/drv_ecs_exception.c In file included from D:/8911/src/cbb/extension/driver/mcu/ecsdrv/drv_ecs_exception.c:23: D:/8911/src/cbb/extension/driver/mcu/ecsdrv/drv_ecs_exception.c: In function 'GetSysEccType': D:/8911/src/cbb/extension/driver/mcu/ecsdrv/drv_ecs_sysctrl.h:89:42: error: 'ECS_SMCCFG_BASEADDR' undeclared (first use in this function); did you mean 'ECS_SYSCTRL_BASEADDR'? D:/8911/src/cbb/extension/driver/mcu/ecsdrv/drv_ecs_exception.c:90:29: note: in expansion of macro 'SMC_BANK_ECC' compilation terminated due to -Wfatal-errors. [112/218] Building C object .sdk/cbb/component/log/CMakeFiles/cbb-component-log.dir/log.c.obj [113/218] Building C object .sdk/cbb/extension/base/CMakeFiles/cbb-extension-base.dir/common_ext.c.obj [114/218] Building C object .sdk/HiDSPc0t0/dsp/hidsp_src/app_perf_alm/CMakeFiles/hidspc0t0-dsp-hidsp_src-app_perf_alm.dir/ecs_ecc_poll.c.obj [115/218] Building C object .sdk/HiDSPc0t0/dsp/hidsp_src/resource_mng/CMakeFiles/hidspc0t0-dsp-hidsp_src-resource_mng.dir/ecs_resource.c.obj [116/218] Building C object .sdk/HiDSPc0t0/dsp/odsp_src/odsp_rx_access/CMakeFiles/hidspc0t0-dsp-odsp_src-odsp_rx_access.dir/odsp_rx_flow_thread_adp.c.obj D:/8911/src/HiDSPc0t0/dsp/odsp_src/odsp_rx_access/odsp_rx_flow_thread_adp.c: In function 'ChangeOdspLockThreadPriority': D:/8911/src/HiDSPc0t0/dsp/odsp_src/odsp_rx_access/odsp_rx_flow_thread_adp.c:100:40: warning: unused parameter 'priority' [-Wunused-parameter] [117/218] Building C object .sdk/HiDSPc0t0/dsp/hidsp_src/msa/CMakeFiles/hidspc0t0-dsp-hidsp_src-msa.dir/msa_cmd_list.c.obj -- FAILED: .sdk/HiDSPc0t0/dsp/hidsp_src/app_perf_alm/CMakeFiles/hidspc0t0-dsp-hidsp_src-app_perf_alm.dir/ecs_ecc_driver.c.obj "D:\Program Files (x86)\mingw64\bin\gcc.exe" @.sdk\HiDSPc0t0\dsp\hidsp_src\app_perf_alm\CMakeFiles\hidspc0t0-dsp-hidsp_src-app_perf_alm.dir\ecs_ecc_driver.c.obj.rsp -MD -MT .sdk/HiDSPc0t0/dsp/hidsp_src/app_perf_alm/CMakeFiles/hidspc0t0-dsp-hidsp_src-app_perf_alm.dir/ecs_ecc_driver.c.obj -MF .sdk\HiDSPc0t0\dsp\hidsp_src\app_perf_alm\CMakeFiles\hidspc0t0-dsp-hidsp_src-app_perf_alm.dir\ecs_ecc_driver.c.obj.d -o .sdk/HiDSPc0t0/dsp/hidsp_src/app_perf_alm/CMakeFiles/hidspc0t0-dsp-hidsp_src-app_perf_alm.dir/ecs_ecc_driver.c.obj -c D:/8911/src/HiDSPc0t0/dsp/hidsp_src/app_perf_alm/ecs_ecc_driver.c In file included from D:/8911/src/cbb/extension/driver/mcu/ecsdrv/drv_ecs_interrupt.h:20, from D:/8911/src/cbb/extension/driver/mcu/ecsdrv/drv_ecs_hal.h:17, from D:/8911/src/cbb/extension/driver/hal/mcu_hal.h:46, from D:/8911/src/cbb/base/platform.h:14, from D:/8911/src/cbb/extension/proj_cfg/sd8911v100/proj_cbb_api.h:12, from D:/8911/src/HiDSPc0t0/dsp/hidsp_src/app_perf_alm/ecs_ecc_driver.h:11, from D:/8911/src/HiDSPc0t0/dsp/hidsp_src/app_perf_alm/ecs_ecc_driver.c:15: D:/8911/src/HiDSPc0t0/dsp/hidsp_src/app_perf_alm/ecs_ecc_driver.c: In function 'GetEccAlmAddr': D:/8911/src/cbb/extension/driver/mcu/ecsdrv/drv_ecs_sysctrl.h:91:42: error: 'ECS_SMCCFG_BASEADDR' undeclared (first use in this function); did you mean 'ECS_DMAC_BASEADDR'? D:/8911/src/HiDSPc0t0/dsp/hidsp_src/app_perf_alm/ecs_ecc_driver.c:51:29: note: in expansion of macro 'SMC_BANK_ECC_ADDR' compilation terminated due to -Wfatal-errors. [119/218] Building C object .sdk/HiDSPc0t0/dsp/hidsp_src/app_perf_alm/CMakeFiles/hidspc0t0-dsp-hidsp_src-app_perf_alm.dir/ecs_heart_check.c.obj [120/218] Building C object .sdk/HiDSPc0t0/dsp/hidsp_src/app_perf_alm/CMakeFiles/hidspc0t0-dsp-hidsp_src-app_perf_alm.dir/odsp_log_poll.c.obj [121/218] Building C object .sdk/HiDSPc0t0/dsp/hidsp_src/msa/CMakeFiles/hidspc0t0-dsp-hidsp_src-msa.dir/msa_com_adapter.c.obj [122/218] Building C object .sdk/HiDSPc0t0/dsp/hidsp_src/msa/sd8911v100/CMakeFiles/hidspc0t0-dsp-hidsp_src-msa-sd8911v100.dir/msa_impl_adapter.c.obj [123/218] Building C object .sdk/HiDSPc0t0/dsp/hidsp_src/msa/CMakeFiles/hidspc0t0-dsp-hidsp_src-msa.dir/soft_version.c.obj [124/218] Building C object .sdk/HiDSPc0t0/dsp/hidsp_src/msa/CMakeFiles/hidspc0t0-dsp-hidsp_src-msa.dir/t0_send_cmd_list.c.obj D:/8911/src/HiDSPc0t0/dsp/hidsp_src/msa/t0_send_cmd_list.c: In function 'T0ToT1Cmd': D:/8911/src/HiDSPc0t0/dsp/hidsp_src/msa/t0_send_cmd_list.c:63:37: warning: unused parameter 'cmdPara' [-Wunused-parameter] -- D:/8911/src/HiDSPc0t0/dsp/odsp_src/odsp_rx_access/odsp_rx_flow/rx_flow_drv/sd8911v100/odsp_rx_flow_drv.c: In function 'OdspServiceIntMaskInt0': D:/8911/src/HiDSPc0t0/dsp/odsp_src/odsp_rx_access/odsp_rx_flow/rx_flow_drv/sd8911v100/odsp_rx_flow_drv.c:2365:34: warning: unused parameter 'mask' [-Wunused-parameter] D:/8911/src/HiDSPc0t0/dsp/odsp_src/odsp_rx_access/odsp_rx_flow/rx_flow_drv/sd8911v100/odsp_rx_flow_drv.c: In function 'StdRebuild': D:/8911/src/HiDSPc0t0/dsp/odsp_src/odsp_rx_access/odsp_rx_flow/rx_flow_drv/sd8911v100/odsp_rx_flow_drv.c:2373:22: warning: unused parameter 'chipId' [-Wunused-parameter] D:/8911/src/HiDSPc0t0/dsp/odsp_src/odsp_rx_access/odsp_rx_flow/rx_flow_drv/sd8911v100/odsp_rx_flow_drv.c:2373:35: warning: unused parameter 'win' [-Wunused-parameter] D:/8911/src/HiDSPc0t0/dsp/odsp_src/odsp_rx_access/odsp_rx_flow/rx_flow_drv/sd8911v100/odsp_rx_flow_drv.c: In function 'GetForceAlmVal': D:/8911/src/HiDSPc0t0/dsp/odsp_src/odsp_rx_access/odsp_rx_flow/rx_flow_drv/sd8911v100/odsp_rx_flow_drv.c:2397:28: warning: unused parameter 'almVal' [-Wunused-parameter] D:/8911/src/HiDSPc0t0/dsp/odsp_src/odsp_rx_access/odsp_rx_flow/rx_flow_drv/sd8911v100/odsp_rx_flow_drv.c: In function 'SetRxFecTopInt0En': D:/8911/src/HiDSPc0t0/dsp/odsp_src/odsp_rx_access/odsp_rx_flow/rx_flow_drv/sd8911v100/odsp_rx_flow_drv.c:2409:29: warning: unused parameter 'en' [-Wunused-parameter] [160/218] Building C object .sdk/cbb/extension/driver/mcu/ecsdrv/CMakeFiles/cbb-extension-driver-mcu-ecsdrv.dir/drv_ecs_timer.c.obj ninja: build stopped: subcommand failed. [build] make build end. For more detailed information, please check ./BUILD.LOG. Build Fail! 以上错误是由什么导致的
最新发布
06-26
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值