Example #1
0
/**
  * @brief  DMA UART receive process complete callback.
  * @param  hdma: DMA handle
  * @retval None
  */
static void h_UART_DMAReceiveCplt(DMA_HandleTypeDef *hdma)
{
  UART_HandleTypeDef* huart = ( UART_HandleTypeDef* )((DMA_HandleTypeDef* )hdma)->Parent;
  /* DMA Normal mode*/
  if((hdma->Instance->CR & DMA_SxCR_CIRC) == 0)
  {
    huart->RxXferCount = 0;

    /* Disable the DMA transfer for the receiver request by setting the DMAR bit
       in the UART CR3 register */
    huart->Instance->CR3 &= (uint32_t)~((uint32_t)USART_CR3_DMAR);

    /* Update Rx state*/
    huart->RxState = HAL_UART_STATE_READY;
  }
  HAL_UART_RxCpltCallback(huart);
}
//void TIM4_IRQHandler( void )
//void I2C1_EV_IRQHandler( void )
//void I2C1_ER_IRQHandler( void )
//void I2C2_EV_IRQHandler( void )
//void I2C2_ER_IRQHandler( void )
//void SPI1_IRQHandler( void )
//void SPI2_IRQHandler( void )
void USART1_IRQHandler( void )
{
#if defined(KS_HW_UART_HAL_LIBRARY)
  HAL_UART_IRQHandler(hSerial.handle);

#else
  if (__HAL_UART_GET_IT_SOURCE(hSerial.handle, UART_IT_TXE) != RESET) {
    __HAL_UART_GET_IT_SOURCE(hSerial.handle, UART_IT_TXE);
    HAL_UART_TxCpltCallback(hSerial.handle);
  }
  if (__HAL_UART_GET_IT_SOURCE(hSerial.handle, UART_IT_RXNE) != RESET) {
    __HAL_UART_GET_IT_SOURCE(hSerial.handle, UART_IT_RXNE);
    HAL_UART_RxCpltCallback(hSerial.handle);
  }

#endif
}
Example #3
0
void DisableUart2ReceiveData(UART_HandleTypeDef* pUart)
{
    while(HAL_IS_BIT_SET(pUart->Instance->ISR, UART_FLAG_RXNE)) { }

    __HAL_UART_DISABLE_IT(pUart, UART_IT_RXNE);

    /* Check if a transmit Process is ongoing or not */
    if(pUart->gState == HAL_UART_STATE_BUSY_TX_RX)
    {
        pUart->gState = HAL_UART_STATE_BUSY_TX;
    }
    else
    {
        /* Disable the UART Parity Error Interrupt */
        __HAL_UART_DISABLE_IT(pUart, UART_IT_PE);

        /* Disable the UART Error Interrupt: (Frame error, noise error, overrun error) */
        __HAL_UART_DISABLE_IT(pUart, UART_IT_ERR);

        pUart->gState = HAL_UART_STATE_READY;
    }

    HAL_UART_RxCpltCallback(pUart);
}