STM32F4XX UART 发送时出现HardFault

本文探讨了STM32F4在使用非阻塞模式发送UART数据时遇到的HardFault问题,分析了使用局部变量传参导致的硬件错误原因,并提供了使用全局变量及重试机制的解决方案。同时,针对同一UART通道同时进行收发操作可能产生的冲突,提出了放弃当前收发并重试的策略。

STM32F4 UART 发送时出现HardFault

发送uart数据时,如果使用的是非阻塞模式发送的话。数据的传参使用的是局部变量时,在uart繁忙的情况下会造成硬件错误,访问了错误的地址。

解决方法最简单的就是使用全局变量传数据。

但是uart通道繁忙的情况下也会引起另一个问题,就是使用非阻塞模式下发送uart会返回BUSY的状态。需要做判断并做重试机制。
还有一个问题就是同一个uart通道同时做收和发处理的话,会因为锁的问题产生冲突,这个网上其他地方也有提到。这个时候不做处理发送可能会有几秒的失效情况。所以建议在收发时返回状态为BUSY时,先调用放弃收发函数。在下个循环再次尝试。

*** Using Compiler 'V5.06 update 5 (build 528)', folder: 'C:\Keil_v5\ARM\ARMCC\Bin' Build target 'STM32F407_UART_CMD' assembling startup_stm32f407xx.s... compiling dma.c... compiling stm32f4xx_hal_msp.c... compiling system_stm32f4xx.c... compiling Emm_V5.c... compiling main.c... compiling stm32f4xx_hal_flash.c... compiling usart.c... compiling gpio.c... compiling stm32f4xx_it.c... compiling stm32f4xx_hal_rcc_ex.c... compiling stm32f4xx_hal_flash_ex.c... compiling stm32f4xx_hal_rcc.c... compiling stm32f4xx_hal_uart.c... compiling stm32f4xx_hal_flash_ramfunc.c... compiling stm32f4xx_hal_gpio.c... compiling stm32f4xx_hal_pwr_ex.c... compiling stm32f4xx_hal_pwr.c... compiling stm32f4xx_hal_dma.c... compiling stm32f4xx_hal_cortex.c... compiling stm32f4xx_hal_exti.c... compiling stm32f4xx_hal.c... compiling stm32f4xx_hal_dma_ex.c... linking... STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches stm32f4xx_hal_rcc.o(i.HAL_RCC_OscConfig). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches usart.o(i.HAL_UART_MspInit). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches stm32f4xx_hal_uart.o(i.HAL_UART_IRQHandler). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches stm32f4xx_hal_gpio.o(i.HAL_GPIO_Init). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches stm32f4xx_hal_dma.o(i.HAL_DMA_IRQHandler). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches stm32f4xx_hal_rcc.o(i.HAL_RCC_ClockConfig). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches stm32f4xx_hal_uart.o(i.UART_SetConfig). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches stm32f4xx_hal_dma.o(i.HAL_DMA_Init). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches main.o(i.main). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches stm32f4xx_hal_uart.o(i.UART_Receive_IT). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches main.o(i.SystemClock_Config). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches dma.o(i.MX_DMA_Init). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches stm32f4xx_hal_uart.o(i.UART_Start_Receive_DMA). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches stm32f4xx_hal_uart.o(i.HAL_UART_Transmit_DMA). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches stm32f4xx_hal_dma.o(i.HAL_DMA_Abort). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches stm32f4xx_it.o(i.USART1_IRQHandler). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches stm32f4xx_hal_uart.o(i.UART_DMAReceiveCplt). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches stm32f4xx_hal_dma.o(i.DMA_CheckFifoParam). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches emm_v5.o(i.Emm_V5_Pos_Control). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches stm32f4xx_hal_uart.o(i.HAL_UART_DMAStop). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches stm32f4xx_hal_rcc.o(i.HAL_RCC_GetSysClockFreq). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches stm32f4xx_hal_dma.o(i.HAL_DMA_Start_IT). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches gpio.o(i.MX_GPIO_Init). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches stm32f4xx_hal_cortex.o(i.HAL_NVIC_SetPriority). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches stm32f4xx_hal_uart.o(i.HAL_UART_Init). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches stm32f4xx_hal_uart.o(i.UART_Transmit_IT). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches stm32f4xx_hal_msp.o(i.HAL_MspInit). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches stm32f4xx_hal_uart.o(i.UART_EndRxTransfer). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches stm32f4xx_hal_uart.o(i.UART_DMAError). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches stm32f4xx_hal.o(i.HAL_InitTick). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches stm32f4xx_hal_uart.o(i.UART_DMATransmitCplt). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches usart.o(i.MX_USART1_UART_Init). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches usart.o(i.MX_USART6_UART_Init). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches stm32f4xx_hal_dma.o(i.DMA_CalcBaseAndBitshift). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches stm32f4xx_hal_dma.o(i.DMA_SetConfig). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches stm32f4xx_hal.o(i.HAL_Init). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches stm32f4xx_hal_cortex.o(i.HAL_SYSTICK_Config). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches system_stm32f4xx.o(i.SystemInit). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches stm32f4xx_hal.o(i.HAL_Delay). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches stm32f4xx_hal_dma.o(i.HAL_DMA_Abort_IT). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches stm32f4xx_hal_cortex.o(i.HAL_NVIC_SetPriorityGrouping). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches stm32f4xx_hal_rcc.o(i.HAL_RCC_GetPCLK1Freq). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches stm32f4xx_hal_rcc.o(i.HAL_RCC_GetPCLK2Freq). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches stm32f4xx_hal_uart.o(i.UART_DMARxHalfCplt). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches stm32f4xx_hal_uart.o(i.HAL_UART_Receive_DMA). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches stm32f4xx_hal_uart.o(i.UART_EndTxTransfer). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches stm32f4xx_hal_cortex.o(i.HAL_NVIC_EnableIRQ). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches stm32f4xx_hal_uart.o(i.UART_EndTransmit_IT). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches stm32f4xx_hal.o(i.HAL_IncTick). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches stm32f4xx_it.o(i.DMA2_Stream1_IRQHandler). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches stm32f4xx_it.o(i.DMA2_Stream2_IRQHandler). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches stm32f4xx_it.o(i.DMA2_Stream6_IRQHandler). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches stm32f4xx_it.o(i.DMA2_Stream7_IRQHandler). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches stm32f4xx_it.o(i.USART6_IRQHandler). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches stm32f4xx_hal_uart.o(i.UART_DMAAbortOnError). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches stm32f4xx_hal_rcc.o(i.HAL_RCC_GetHCLKFreq). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches stm32f4xx_hal.o(i.HAL_GetTick). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches stm32f4xx_hal_uart.o(i.UART_DMATxHalfCplt). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches stm32f4xx_it.o(i.SysTick_Handler). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches main.o(i.Error_Handler). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches stm32f4xx_it.o(i.BusFault_Handler). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches stm32f4xx_it.o(i.HardFault_Handler). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches stm32f4xx_it.o(i.MemManage_Handler). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches stm32f4xx_it.o(i.UsageFault_Handler). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches stm32f4xx_it.o(i.DebugMon_Handler). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches stm32f4xx_it.o(i.NMI_Handler). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches stm32f4xx_it.o(i.PendSV_Handler). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches stm32f4xx_it.o(i.SVC_Handler). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches stm32f4xx_hal_uart.o(i.HAL_UARTEx_RxEventCallback). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches stm32f4xx_hal_uart.o(i.HAL_UART_ErrorCallback). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches stm32f4xx_hal_uart.o(i.HAL_UART_RxCpltCallback). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches stm32f4xx_hal_uart.o(i.HAL_UART_RxHalfCpltCallback). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches stm32f4xx_hal_uart.o(i.HAL_UART_TxCpltCallback). STM32F407_UART_CMD\STM32F407_UART_CMD.axf: Error: L6405E: No .ANY selector matches stm32f4xx_hal_uart.o(i.HAL_UART_TxHalfCpltCallback). Not enough information to list image symbols. Not enough information to list load addresses in the image map. Finished: 2 information, 0 warning and 74 error messages. "STM32F407_UART_CMD\STM32F407_UART_CMD.axf" - 74 Error(s), 0 Warning(s). Target not created. Build Time Elapsed: 00:00:10
07-22
Rebuild started: Project: AD9959 *** Using Compiler 'V5.06 update 7 (build 960)', folder: 'F:\stc\ARM\ARMCC\Bin' Rebuild target '2024C' Note: source file '..\Core\Src\gpio.c' - object file renamed from 'AD9959\gpio.o' to 'AD9959\gpio_1.o'. Note: source file '..\Core\Src\main.c' - object file renamed from 'AD9959\main.o' to 'AD9959\main_1.o'. Note: source file '..\Core\Src\stm32f4xx_hal_msp.c' - object file renamed from 'AD9959\stm32f4xx_hal_msp.o' to 'AD9959\stm32f4xx_hal_msp_1.o'. Note: source file '..\Core\Src\stm32f4xx_it.c' - object file renamed from 'AD9959\stm32f4xx_it.o' to 'AD9959\stm32f4xx_it_1.o'. Note: source file '..\Core\Src\system_stm32f4xx.c' - object file renamed from 'AD9959\system_stm32f4xx.o' to 'AD9959\system_stm32f4xx_1.o'. assembling startup_stm32f407xx.s... compiling stm32f4xx_hal_flash_ramfunc.c... compiling gpio.c... compiling stm32f4xx_hal_dma_ex.c... compiling system_stm32f4xx.c... compiling stm32f4xx_hal_cortex.c... compiling stm32f4xx_hal_pwr.c... compiling stm32f4xx_hal_pwr_ex.c... compiling stm32f4xx_hal_tim_ex.c... compiling Delay.c... compiling stm32f4xx_hal_exti.c... compiling screen.c... compiling stm32f4xx_hal_msp.c... compiling stm32f4xx_hal_gpio.c... compiling stm32f4xx_hal.c... compiling ad9959.c... compiling stm32f4xx_hal_flash.c... compiling stm32f4xx_hal_rcc_ex.c... compiling stm32f4xx_it.c... compiling stm32f4xx_hal_flash_ex.c... compiling key.c... ..\Hardware\key.c(59): warning: #1-D: last line of file ends without a newline ..\Hardware\key.c: 1 warning, 0 errors compiling main.c... compiling stm32f4xx_hal_dma.c... compiling stm32f4xx_hal_rcc.c... compiling stm32f4xx_hal_tim.c... compiling sys.c... compiling uart.c... compiling gpio.c... compiling main.c... compiling stm32f4xx_hal_msp.c... compiling system_stm32f4xx.c... compiling stm32f4xx_it.c... linking... AD9959\AD9959.axf: Error: L6200E: Symbol SystemInit multiply defined (by system_stm32f4xx_1.o and system_stm32f4xx.o). AD9959\AD9959.axf: Error: L6200E: Symbol NMI_Handler multiply defined (by stm32f4xx_it_1.o and stm32f4xx_it.o). AD9959\AD9959.axf: Error: L6200E: Symbol HardFault_Handler multiply defined (by stm32f4xx_it_1.o and stm32f4xx_it.o). AD9959\AD9959.axf: Error: L6200E: Symbol MemManage_Handler multiply defined (by stm32f4xx_it_1.o and stm32f4xx_it.o). AD9959\AD9959.axf: Error: L6200E: Symbol BusFault_Handler multiply defined (by stm32f4xx_it_1.o and stm32f4xx_it.o). AD9959\AD9959.axf: Error: L6200E: Symbol UsageFault_Handler multiply defined (by stm32f4xx_it_1.o and stm32f4xx_it.o). AD9959\AD9959.axf: Error: L6200E: Symbol SVC_Handler multiply defined (by stm32f4xx_it_1.o and stm32f4xx_it.o). AD9959\AD9959.axf: Error: L6200E: Symbol DebugMon_Handler multiply defined (by stm32f4xx_it_1.o and stm32f4xx_it.o). AD9959\AD9959.axf: Error: L6200E: Symbol PendSV_Handler multiply defined (by stm32f4xx_it_1.o and stm32f4xx_it.o). AD9959\AD9959.axf: Error: L6200E: Symbol SysTick_Handler multiply defined (by stm32f4xx_it_1.o and stm32f4xx_it.o). AD9959\AD9959.axf: Error: L6200E: Symbol __asm___6_main_c_66f8bec5____REV16 multiply defined (by main_1.o and main.o). AD9959\AD9959.axf: Error: L6200E: Symbol __asm___6_main_c_66f8bec5____REVSH multiply defined (by main_1.o and main.o). AD9959\AD9959.axf: Error: L6200E: Symbol __asm___6_main_c_66f8bec5____RRX multiply defined (by main_1.o and main.o). AD9959\AD9959.axf: Error: L6200E: Symbol __ARM_use_no_argv multiply defined (by main_1.o and main.o). AD9959\AD9959.axf: Error: L6200E: Symbol main multiply defined (by main_1.o and main.o). AD9959\AD9959.axf: Error: L6200E: Symbol screen_Init multiply defined (by main_1.o and main.o). AD9959\AD9959.axf: Error: L6200E: Symbol signal_setting multiply defined (by main_1.o and main.o). AD9959\AD9959.axf: Error: L6200E: Symbol __asm___6_gpio_c_62724882____REV16 multiply defined (by gpio_1.o and gpio.o). AD9959\AD9959.axf: Error: L6200E: Symbol __asm___6_gpio_c_62724882____REVSH multiply defined (by gpio_1.o and gpio.o). AD9959\AD9959.axf: Error: L6200E: Symbol __asm___6_gpio_c_62724882____RRX multiply defined (by gpio_1.o and gpio.o). AD9959\AD9959.axf: Error: L6200E: Symbol MX_GPIO_Init multiply defined (by gpio_1.o and gpio.o). AD9959\AD9959.axf: Error: L6200E: Symbol __asm___14_stm32f4xx_it_c_bb8ca80c____REV16 multiply defined (by stm32f4xx_it_1.o and stm32f4xx_it.o). AD9959\AD9959.axf: Error: L6200E: Symbol __asm___14_stm32f4xx_it_c_bb8ca80c____REVSH multiply defined (by stm32f4xx_it_1.o and stm32f4xx_it.o). AD9959\AD9959.axf: Error: L6200E: Symbol __asm___14_stm32f4xx_it_c_bb8ca80c____RRX multiply defined (by stm32f4xx_it_1.o and stm32f4xx_it.o). AD9959\AD9959.axf: Error: L6200E: Symbol __asm___19_stm32f4xx_hal_msp_c_d46e2bee____REV16 multiply defined (by stm32f4xx_hal_msp_1.o and stm32f4xx_hal_msp.o). AD9959\AD9959.axf: Error: L6200E: Symbol __asm___19_stm32f4xx_hal_msp_c_d46e2bee____REVSH multiply defined (by stm32f4xx_hal_msp_1.o and stm32f4xx_hal_msp.o). AD9959\AD9959.axf: Error: L6200E: Symbol __asm___19_stm32f4xx_hal_msp_c_d46e2bee____RRX multiply defined (by stm32f4xx_hal_msp_1.o and stm32f4xx_hal_msp.o). AD9959\AD9959.axf: Error: L6200E: Symbol HAL_MspInit multiply defined (by stm32f4xx_hal_msp_1.o and stm32f4xx_hal_msp.o). AD9959\AD9959.axf: Error: L6200E: Symbol SystemCoreClock multiply defined (by system_stm32f4xx_1.o and system_stm32f4xx.o). AD9959\AD9959.axf: Error: L6200E: Symbol __asm___18_system_stm32f4xx_c_5d646a67____REV16 multiply defined (by system_stm32f4xx_1.o and system_stm32f4xx.o). AD9959\AD9959.axf: Error: L6200E: Symbol __asm___18_system_stm32f4xx_c_5d646a67____REVSH multiply defined (by system_stm32f4xx_1.o and system_stm32f4xx.o). AD9959\AD9959.axf: Error: L6200E: Symbol __asm___18_system_stm32f4xx_c_5d646a67____RRX multiply defined (by system_stm32f4xx_1.o and system_stm32f4xx.o). AD9959\AD9959.axf: Error: L6200E: Symbol AHBPrescTable multiply defined (by system_stm32f4xx_1.o and system_stm32f4xx.o). AD9959\AD9959.axf: Error: L6200E: Symbol APBPrescTable multiply defined (by system_stm32f4xx_1.o and system_stm32f4xx.o). AD9959\AD9959.axf: Error: L6200E: Symbol SystemCoreClockUpdate multiply defined (by system_stm32f4xx_1.o and system_stm32f4xx.o). Not enough information to list image symbols. Not enough information to list load addresses in the image map. Finished: 2 information, 0 warning and 35 error messages. "AD9959\AD9959.axf" - 35 Error(s), 1 Warning(s). Target not created. Build Time Elapsed: 00:00:07
06-03
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值