/*********************************************************************//** * @brief Configure Pulse divider for IrDA function on UART peripheral. * @param[in] UARTx UART peripheral selected, should be LPC_UART3 (only) * @param[in] PulseDiv Pulse Divider value from Peripheral clock, * should be one of the following: - UART_IrDA_PULSEDIV2 : Pulse width = 2 * Tpclk - UART_IrDA_PULSEDIV4 : Pulse width = 4 * Tpclk - UART_IrDA_PULSEDIV8 : Pulse width = 8 * Tpclk - UART_IrDA_PULSEDIV16 : Pulse width = 16 * Tpclk - UART_IrDA_PULSEDIV32 : Pulse width = 32 * Tpclk - UART_IrDA_PULSEDIV64 : Pulse width = 64 * Tpclk - UART_IrDA_PULSEDIV128 : Pulse width = 128 * Tpclk - UART_IrDA_PULSEDIV256 : Pulse width = 256 * Tpclk * @return none **********************************************************************/ void UART_IrDAPulseDivConfig(LPC_UART_TypeDef *UARTx, UART_IrDA_PULSE_Type PulseDiv) { uint32_t tmp, tmp1; CHECK_PARAM(PARAM_UART_IrDA(UARTx)); CHECK_PARAM(PARAM_UART_IrDA_PULSEDIV(PulseDiv)); tmp1 = UART_ICR_PULSEDIV(PulseDiv); tmp = UARTx->ICR & (~UART_ICR_PULSEDIV(7)); tmp |= tmp1 | UART_ICR_FIXPULSE_EN; UARTx->ICR = tmp & UART_ICR_BITMASK; }
/*********************************************************************//** * @brief Enable or disable IrDA function on UART peripheral. * @param[in] UARTx UART peripheral selected, should be LPC_UART3 (only) * @param[in] NewState New state of IrDA function, should be: * - ENABLE: Enable this function. * - DISABLE: Disable this function. * @return none **********************************************************************/ void UART_IrDACmd(LPC_UART_TypeDef* UARTx, FunctionalState NewState) { CHECK_PARAM(PARAM_UART_IrDA(UARTx)); CHECK_PARAM(PARAM_FUNCTIONALSTATE(NewState)); if (NewState == ENABLE) { UARTx->ICR |= UART_ICR_IRDAEN; } else { UARTx->ICR &= (~UART_ICR_IRDAEN) & UART_ICR_BITMASK; } }
/*********************************************************************//** * @brief Enable or disable inverting serial input function of IrDA * on UART peripheral. * @param[in] UARTx UART peripheral selected, should be UART3 (only) * @param[in] NewState New state of inverting serial input, should be: * - ENABLE: Enable this function. * - DISABLE: Disable this function. * @return none **********************************************************************/ void UART_IrDAInvtInputCmd(UART_TypeDef* UARTx, FunctionalState NewState) { CHECK_PARAM(PARAM_UART_IrDA(UARTx)); CHECK_PARAM(PARAM_FUNCTIONALSTATE(NewState)); if (NewState == ENABLE) { UARTx->ICR |= UART_ICR_IRDAINV; } else if (NewState == DISABLE) { UARTx->ICR &= (~UART_ICR_IRDAINV) & UART_ICR_BITMASK; } }