/*********************************************************************************************************//** * @brief Enables or Disables DMOS function. * @param NewState: ENABLE or DISABLE. * @retval None ************************************************************************************************************/ void PWRCU_DMOSCmd(ControlStatus NewState) { Assert_Param(IS_CONTROL_STATUS(NewState)); if (BB_DMOSSTS == 0) { BB_DMOSON = 0; } BB_DMOSON = NewState; }
/*********************************************************************************************************//** * @brief Enables or Disables external WAKEUP pin function. * @param NewState: ENABLE or DISABLE. * @retval None ************************************************************************************************************/ void PWRCU_WakeupPinCmd(ControlStatus NewState) { u32 uRTCStatus = 0; Assert_Param(IS_CONTROL_STATUS(NewState)); uRTCStatus = BB_RTCEN; BB_RTCEN = 1; BB_WUPEN = NewState; BB_RTCEN = uRTCStatus; }
/*********************************************************************************************************//** * @brief Enable or Disable the WDT Reset when WDT meets underflow or error. * @param NewState: new state of the WDT Reset. * This parameter can be: ENABLE or DISABLE. * @retval None ************************************************************************************************************/ void WDT_ResetCmd(ControlStatus NewState) { /* Check the parameters */ Assert_Param(IS_CONTROL_STATUS(NewState)); if (NewState != DISABLE) { WDT->MR0 |= MODE0_WDTRETEN_SET; } else { WDT->MR0 &= MODE0_WDTRETEN_RESET; } }
/*********************************************************************************************************//** * @brief Enable or Disable the SysTick Interrupt. * @param NewState: new state of the SysTick Interrupt. * This parameter can be: ENABLE or DISABLE. * @retval None ***********************************************************************************************************/ void SYSTICK_IntConfig(ControlStatus NewState) { /* Check the parameters */ Assert_Param(IS_CONTROL_STATUS(NewState)); if (NewState != DISABLE) { SysTick->CTRL |= CTRL_TICKINT_SET; } else { SysTick->CTRL &= CTRL_TICKINT_RESET; } }
/*********************************************************************************************************//** * @brief Enable or Disable protection mechanism of the WDT. * @param NewState: new state of the WDT Protect. * This parameter can be: ENABLE or DISABLE. * @retval None ************************************************************************************************************/ void WDT_ProtectCmd(ControlStatus NewState) { /* Check the parameters */ Assert_Param(IS_CONTROL_STATUS(NewState)); if (NewState != DISABLE) { WDT->PR = PRCT_SET; } else { WDT->PR = PRCT_RESET; } }
/*********************************************************************************************************//** * @brief Select which low power mode to execute to the system. * @param NVIC_LowPowerMode: Specify the new low power mode to execute to the system. * This parameter can be one of the following values: * @arg NVIC_LOWPOWER_SEVONPEND * @arg NVIC_LOWPOWER_SLEEPDEEP * @arg NVIC_LOWPOWER_SLEEPONEXIT * @param NewState: new state of low power condition. * This parameter can be: ENABLE or DISABLE. * @retval None ***********************************************************************************************************/ void NVIC_LowPowerConfig(u8 NVIC_LowPowerMode, ControlStatus NewState) { /* Check the parameters */ Assert_Param(IS_NVIC_LOWPOWER(NVIC_LowPowerMode)); Assert_Param(IS_CONTROL_STATUS(NewState)); if (NewState != DISABLE) { SCB->SCR |= NVIC_LowPowerMode; } else { SCB->SCR &= (u32)(~(u32)NVIC_LowPowerMode); } }
/*********************************************************************************************************//** * @brief Enable or Disable inverting serial input function of IrDA on the specified USART. * @param USARTx: where USARTx is USART to select the USART peripheral, x can be 0 or 1. * @param NewState: new state of the inverting serial input. * This parameter can be: ENABLE or DISABLE. * @retval None ************************************************************************************************************/ void USART_IrDAInvtInputCmd(USART_TypeDef* USARTx, ControlStatus NewState) { /* Check the parameters */ Assert_Param(IS_USART(USARTx)); Assert_Param(IS_CONTROL_STATUS(NewState)); if (NewState != DISABLE) { USARTx->ICR |= USART_RXINV_ON; } else { USARTx->ICR &= USART_RXINV_OFF; } }
/*********************************************************************************************************//** * @brief Enable or Disable the USART stick parity function. * @param USARTx: where USARTx is the selected USART from the USART peripheral, x can be 0 or 1. * @param NewState: new state of the stick parity. * This parameter can be: ENABLE or DISABLE * @retval None ************************************************************************************************************/ void USART_StickParityCmd(USART_TypeDef* USARTx, ControlStatus NewState) { /* Check the parameters */ Assert_Param(IS_USART(USARTx)); Assert_Param(IS_CONTROL_STATUS(NewState)); if (NewState != DISABLE) { USARTx->LCR |= USART_SPE_ON; } else { USARTx->LCR &= USART_SPE_OFF; } }
/*********************************************************************************************************//** * @brief Enable or Disable time out interrupt of the USART. * @param USARTx: where USARTx is USART to select the USART peripheral, x can be 0 or 1. * @param NewState: new state of the time out interrupt. * This parameter can be: ENABLE or DISABLE. * @retval None ************************************************************************************************************/ void USART_TimeOutIntConfig(USART_TypeDef* USARTx, ControlStatus NewState) { /* Check the parameters */ Assert_Param(IS_USART(USARTx)); Assert_Param(IS_CONTROL_STATUS(NewState)); if (NewState != DISABLE) { USARTx->TPR |= USART_TIMEOUT_ON; } else { USARTx->TPR &= USART_TIMEOUT_OFF; } }
/*********************************************************************************************************//** * @brief Enable or Disable the USART interrupts. * @param USARTx: where USARTx is USART to select the USART peripheral, x can be 0 or 1. * @param USART_IER: Specify if the USART interrupt source to be enabled or disabled. * This parameter can be one of the following values: * @arg USART_IER_MSIE * @arg USART_IER_RLSIE * @arg USART_IER_THREIE * @arg USART_IER_RDAIE * @arg USART_IER_ENON * @param NewState: new state of the USART interrupts. * This parameter can be: ENABLE or DISABLE. * @retval None ************************************************************************************************************/ void USART_IntConfig(USART_TypeDef* USARTx, u32 USART_IER, ControlStatus NewState) { /* Check the parameters */ Assert_Param(IS_USART(USARTx)); Assert_Param(IS_CONTROL_STATUS(NewState)); if (NewState != DISABLE) { USARTx->IER |= USART_IER; } else { USARTx->IER &= ~USART_IER; } }
/*********************************************************************************************************//** * @brief Enable or Disable the USART RS485 normal multi-drop operation mode. * @param USARTx: where USARTx is USART to select the USART peripheral, x can be 0 or 1. * @param NewState: new state of the USART RS485 AAD. * This parameter can be: ENABLE or DISABLE. * @retval None ************************************************************************************************************/ void USART_RS485AADCmd(USART_TypeDef* USARTx, ControlStatus NewState) { /* Check the parameters */ Assert_Param(IS_USART(USARTx)); Assert_Param(IS_CONTROL_STATUS(NewState)); if (NewState != DISABLE) { /* Enable the hardware flow control by setting the HFCEN bit in the FCR register */ USARTx->RCR |= USART_RS485AAD_ON; } else { /* Disable the hardware flow control by clearing the TXEN bit in the HFCEN register */ USARTx->RCR &= USART_RS485AAD_OFF; } }
/*********************************************************************************************************//** * @brief Enable or Disable the USART Rx. * @param USARTx: where USARTx is USART to select the USART peripheral, x can be 0 or 1. * @param NewState: new state of the USART Rx. * This parameter can be: ENABLE or DISABLE. * @retval None ************************************************************************************************************/ void USART_RxCmd(USART_TypeDef* USARTx, ControlStatus NewState) { /* Check the parameters */ Assert_Param(IS_USART(USARTx)); Assert_Param(IS_CONTROL_STATUS(NewState)); if (NewState != DISABLE) { /* Enable the Rx by setting the RXEN bit in the FCR register */ USARTx->FCR |= USART_RXEN_ON; } else { /* Disable the Rx by clearing the RXEN bit in the FCR register */ USARTx->FCR &= USART_RXEN_OFF; } }
/*********************************************************************************************************//** * @brief Software trigger a specific PDMA channel * @param PDMA_Ch: PDMA_CH0 ~ PDMACH7 * @param NewState: This parameter can be ENABLE or DISABLE. * @retval None ***********************************************************************************************************/ void PDMA_SwTrigCmd(u32 PDMA_Ch, ControlStatus NewState) { HT_PDMACH_TypeDef *PDMACHx = (HT_PDMACH_TypeDef *)(HT_PDMA_BASE + PDMA_Ch * 6 * 4); /* Check the parameters */ Assert_Param(IS_PDMA_CH(PDMA_Ch)); Assert_Param(IS_CONTROL_STATUS(NewState)); if (NewState != DISABLE) { SetBit_BB((u32)(&PDMACHx->CR), 1); } else { ResetBit_BB((u32)(&PDMACHx->CR), 1); } }
/*********************************************************************************************************//** * @brief Enable the specific PDMA channel interrupts * @param PDMA_Ch: PDMA_CH0 ~ PDMACH7 * @param PDMA_Int: PDMA_INT_GE, PDMA_INT_BE, PDMA_INT_HT, PDMA_INT_TC, PDMA_INT_TE * @param NewState: This parameter can be ENABLE or DISABLE. * @retval None ***********************************************************************************************************/ void PDMA_IntConig(u32 PDMA_Ch, u32 PDMA_Int, ControlStatus NewState) { u32 *PdmaIntEnReg = (PDMA_Ch < 6) ? ((u32 *)(&HT_PDMA->IER0)) : ((u32 *)(&HT_PDMA->IER1)); u32 BitShift = (PDMA_Ch < 6) ? (PDMA_Ch * 5) : ((PDMA_Ch - 6) * 5); /* Check the parameters */ Assert_Param(IS_PDMA_CH(PDMA_Ch)); Assert_Param(IS_PDMA_INT(PDMA_Int)); Assert_Param(IS_CONTROL_STATUS(NewState)); if (NewState != DISABLE) { *PdmaIntEnReg |= (PDMA_Int << BitShift); } else { *PdmaIntEnReg &= ~(PDMA_Int << BitShift); } }
/*********************************************************************************************************//** * @brief Enables or Disables BOD reset function. * @param NewState: ENABLE or DISABLE. * @retval None ************************************************************************************************************/ void PWRCU_BODCmd(ControlStatus NewState) { Assert_Param(IS_CONTROL_STATUS(NewState)); BB_BODEN = NewState; }
/*********************************************************************************************************//** * @brief Enables or Disables LVD event wakeup function. * @param NewState: ENABLE or DISABLE. * @retval None ************************************************************************************************************/ void PWRCU_LVDEventWakeupConfig(ControlStatus NewState) { Assert_Param(IS_CONTROL_STATUS(NewState)); BB_LVDEWEN = NewState; }
/*********************************************************************************************************//** * @brief Enables or Disables external WAKEUP pin interrupt function. * @param NewState: ENABLE or DISABLE. * @retval None ************************************************************************************************************/ void PWRCU_WakeupPinIntConfig(ControlStatus NewState) { Assert_Param(IS_CONTROL_STATUS(NewState)); BB_WUPIEN = NewState; }