/** * @brief Set the RXFIFO threshold. * @param huart UART handle. * @param Threshold RX FIFO threshold value * This parameter can be one of the following values: * @arg @ref UART_RXFIFO_THRESHOLD_1_8 * @arg @ref UART_RXFIFO_THRESHOLD_1_4 * @arg @ref UART_RXFIFO_THRESHOLD_1_2 * @arg @ref UART_RXFIFO_THRESHOLD_3_4 * @arg @ref UART_RXFIFO_THRESHOLD_7_8 * @arg @ref UART_RXFIFO_THRESHOLD_8_8 * @retval HAL status */ HAL_StatusTypeDef HAL_UARTEx_SetRxFifoThreshold(UART_HandleTypeDef *huart, uint32_t Threshold) { uint32_t tmpcr1; /* Check the parameters */ assert_param(IS_UART_FIFO_INSTANCE(huart->Instance)); assert_param(IS_UART_RXFIFO_THRESHOLD(Threshold)); /* Process Locked */ __HAL_LOCK(huart); huart->gState = HAL_UART_STATE_BUSY; /* Save actual UART configuration */ tmpcr1 = READ_REG(huart->Instance->CR1); /* Disable UART */ __HAL_UART_DISABLE(huart); /* Update RX threshold configuration */ MODIFY_REG(huart->Instance->CR3, USART_CR3_RXFTCFG, Threshold); /* Determine the number of data to process during RX/TX ISR execution */ UARTEx_SetNbDataToProcess(huart); /* Restore UART configuration */ WRITE_REG(huart->Instance->CR1, tmpcr1); huart->gState = HAL_UART_STATE_READY; /* Process Unlocked */ __HAL_UNLOCK(huart); return HAL_OK; }
/** * @brief Enable the FIFO mode. * @param huart UART handle. * @retval HAL status */ HAL_StatusTypeDef HAL_UARTEx_EnableFifoMode(UART_HandleTypeDef *huart) { uint32_t tmpcr1; /* Check parameters */ assert_param(IS_UART_FIFO_INSTANCE(huart->Instance)); /* Process Locked */ __HAL_LOCK(huart); huart->gState = HAL_UART_STATE_BUSY; /* Save actual UART configuration */ tmpcr1 = READ_REG(huart->Instance->CR1); /* Disable UART */ __HAL_UART_DISABLE(huart); /* Enable FIFO mode */ SET_BIT(tmpcr1, USART_CR1_FIFOEN); huart->FifoMode = UART_FIFOMODE_ENABLE; /* Restore UART configuration */ WRITE_REG(huart->Instance->CR1, tmpcr1); /* Determine the number of data to process during RX/TX ISR execution */ UARTEx_SetNbDataToProcess(huart); huart->gState = HAL_UART_STATE_READY; /* Process Unlocked */ __HAL_UNLOCK(huart); return HAL_OK; }
/** * @brief Disable the FIFO mode. * @param huart UART handle. * @retval HAL status */ HAL_StatusTypeDef HAL_UARTEx_DisableFifoMode(UART_HandleTypeDef *huart) { uint32_t tmpcr1; /* Check parameters */ assert_param(IS_UART_FIFO_INSTANCE(huart->Instance)); /* Process Locked */ __HAL_LOCK(huart); huart->gState = HAL_UART_STATE_BUSY; /* Save actual UART configuration */ tmpcr1 = READ_REG(huart->Instance->CR1); /* Disable UART */ __HAL_UART_DISABLE(huart); /* Enable FIFO mode */ CLEAR_BIT(tmpcr1, USART_CR1_FIFOEN); huart->FifoMode = UART_FIFOMODE_DISABLE; /* Restore UART configuration */ WRITE_REG(huart->Instance->CR1, tmpcr1); huart->gState = HAL_UART_STATE_READY; /* Process Unlocked */ __HAL_UNLOCK(huart); return HAL_OK; }
/** * @brief Set the RXFIFO threshold. * @param hsmartcard SMARTCARD handle. * @param Threshold RX FIFO threshold value * This parameter can be one of the following values: * @arg @ref SMARTCARD_RXFIFO_THRESHOLD_1_8 * @arg @ref SMARTCARD_RXFIFO_THRESHOLD_1_4 * @arg @ref SMARTCARD_RXFIFO_THRESHOLD_1_2 * @arg @ref SMARTCARD_RXFIFO_THRESHOLD_3_4 * @arg @ref SMARTCARD_RXFIFO_THRESHOLD_7_8 * @arg @ref SMARTCARD_RXFIFO_THRESHOLD_8_8 * @retval HAL status */ HAL_StatusTypeDef HAL_SMARTCARDEx_SetRxFifoThreshold(SMARTCARD_HandleTypeDef *hsmartcard, uint32_t Threshold) { uint32_t tmpcr1 = 0; /* Check parameters */ assert_param(IS_UART_FIFO_INSTANCE(hsmartcard->Instance)); assert_param(IS_SMARTCARD_RXFIFO_THRESHOLD(Threshold)); /* Process Locked */ __HAL_LOCK(hsmartcard); hsmartcard->gState = HAL_SMARTCARD_STATE_BUSY; /* Save actual SMARTCARD configuration */ tmpcr1 = READ_REG(hsmartcard->Instance->CR1); /* Disable SMARTCARD */ __HAL_SMARTCARD_DISABLE(hsmartcard); /* Update RX threshold configuration */ MODIFY_REG(hsmartcard->Instance->CR3, USART_CR3_RXFTCFG, Threshold); /* Determine the number of data to process during RX/TX ISR execution */ SMARTCARDEx_SetNbDataToProcess(hsmartcard); /* Restore SMARTCARD configuration */ MODIFY_REG(hsmartcard->Instance->CR1, USART_CR1_UE, tmpcr1); hsmartcard->gState = HAL_SMARTCARD_STATE_READY; /* Process Unlocked */ __HAL_UNLOCK(hsmartcard); return HAL_OK; }