210 #ifdef HAL_USART_MODULE_ENABLED
216 #define DUMMY_DATA 0xFFFFU
217 #define USART_TIMEOUT_VALUE 22000U
228 #if (USE_HAL_USART_REGISTER_CALLBACKS == 1)
247 static HAL_StatusTypeDef USART_WaitOnFlagUntilTimeout(
USART_HandleTypeDef *husart, uint32_t Flag, FlagStatus Status,
248 uint32_t Tickstart, uint32_t Timeout);
309 assert_param(IS_USART_INSTANCE(husart->
Instance));
314 husart->
Lock = HAL_UNLOCKED;
316 #if (USE_HAL_USART_REGISTER_CALLBACKS == 1)
335 USART_SetConfig(husart);
340 CLEAR_BIT(husart->
Instance->CR2, USART_CR2_LINEN);
341 CLEAR_BIT(husart->
Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN));
344 __HAL_USART_ENABLE(husart);
347 husart->
ErrorCode = HAL_USART_ERROR_NONE;
368 assert_param(IS_USART_INSTANCE(husart->
Instance));
373 __HAL_USART_DISABLE(husart);
375 #if (USE_HAL_USART_REGISTER_CALLBACKS == 1)
387 husart->
ErrorCode = HAL_USART_ERROR_NONE;
391 __HAL_UNLOCK(husart);
426 #if (USE_HAL_USART_REGISTER_CALLBACKS == 1)
450 HAL_StatusTypeDef status = HAL_OK;
452 if (pCallback == NULL)
455 husart->
ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK;
502 husart->
ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK;
523 husart->
ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK;
533 husart->
ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK;
563 HAL_StatusTypeDef status = HAL_OK;
607 husart->
ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK;
628 husart->
ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK;
638 husart->
ErrorCode |= HAL_USART_ERROR_INVALID_CALLBACK;
745 const uint8_t *ptxdata8bits;
746 const uint16_t *ptxdata16bits;
751 if ((pTxData == NULL) || (Size == 0))
759 husart->
ErrorCode = HAL_USART_ERROR_NONE;
772 ptxdata16bits = (
const uint16_t *) pTxData;
776 ptxdata8bits = pTxData;
777 ptxdata16bits = NULL;
783 if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK)
787 if (ptxdata8bits == NULL)
789 husart->
Instance->DR = (uint16_t)(*ptxdata16bits & (uint16_t)0x01FF);
794 husart->
Instance->DR = (uint8_t)(*ptxdata8bits & (uint8_t)0xFF);
801 if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_TC, RESET, tickstart, Timeout) != HAL_OK)
809 __HAL_UNLOCK(husart);
834 uint8_t *prxdata8bits;
835 uint16_t *prxdata16bits;
840 if ((pRxData == NULL) || (Size == 0))
847 husart->
ErrorCode = HAL_USART_ERROR_NONE;
860 prxdata16bits = (uint16_t *) pRxData;
864 prxdata8bits = pRxData;
865 prxdata16bits = NULL;
875 if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK)
879 husart->
Instance->DR = (DUMMY_DATA & (uint16_t)0x0FF);
882 if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_RXNE, RESET, tickstart, Timeout) != HAL_OK)
887 if (prxdata8bits == NULL)
889 *prxdata16bits = (uint16_t)(husart->
Instance->DR & (uint16_t)0x01FF);
896 *prxdata8bits = (uint8_t)(husart->
Instance->DR & (uint8_t)0x0FF);
900 *prxdata8bits = (uint8_t)(husart->
Instance->DR & (uint8_t)0x07F);
910 __HAL_UNLOCK(husart);
934 uint16_t Size, uint32_t Timeout)
936 uint8_t *prxdata8bits;
937 uint16_t *prxdata16bits;
938 const uint8_t *ptxdata8bits;
939 const uint16_t *ptxdata16bits;
940 uint16_t rxdatacount;
945 if ((pTxData == NULL) || (pRxData == NULL) || (Size == 0))
955 if (((((uint32_t)pTxData) & 1U) != 0U) || ((((uint32_t)pRxData) & 1U) != 0U))
963 husart->
ErrorCode = HAL_USART_ERROR_NONE;
979 ptxdata16bits = (
const uint16_t *) pTxData;
980 prxdata16bits = (uint16_t *) pRxData;
984 prxdata8bits = pRxData;
985 ptxdata8bits = pTxData;
986 ptxdata16bits = NULL;
987 prxdata16bits = NULL;
993 while ((husart->
TxXferCount > 0U) || (rxdatacount > 0U))
998 if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_TXE, RESET, tickstart, Timeout) != HAL_OK)
1003 if (ptxdata8bits == NULL)
1005 husart->
Instance->DR = (uint16_t)(*ptxdata16bits & (uint16_t)0x01FF);
1010 husart->
Instance->DR = (uint8_t)(*ptxdata8bits & (uint8_t)0xFF);
1020 if (USART_WaitOnFlagUntilTimeout(husart, USART_FLAG_RXNE, RESET, tickstart, Timeout) != HAL_OK)
1024 if (prxdata8bits == NULL)
1026 *prxdata16bits = (uint16_t)(husart->
Instance->DR & (uint16_t)0x01FF);
1033 *prxdata8bits = (uint8_t)(husart->
Instance->DR & (uint8_t)0x0FF);
1037 *prxdata8bits = (uint8_t)(husart->
Instance->DR & (uint8_t)0x07F);
1051 __HAL_UNLOCK(husart);
1077 if ((pTxData == NULL) || (Size == 0))
1089 husart->
ErrorCode = HAL_USART_ERROR_NONE;
1101 __HAL_UNLOCK(husart);
1104 SET_BIT(husart->
Instance->CR1, USART_CR1_TXEIE);
1130 if ((pRxData == NULL) || (Size == 0))
1141 husart->
ErrorCode = HAL_USART_ERROR_NONE;
1145 __HAL_UNLOCK(husart);
1147 if (husart->
Init.
Parity != USART_PARITY_NONE)
1150 SET_BIT(husart->
Instance->CR1, USART_CR1_PEIE | USART_CR1_RXNEIE);
1155 SET_BIT(husart->
Instance->CR1, USART_CR1_RXNEIE);
1159 SET_BIT(husart->
Instance->CR3, USART_CR3_EIE);
1162 husart->
Instance->DR = (DUMMY_DATA & (uint16_t)0x01FF);
1189 if ((pTxData == NULL) || (pRxData == NULL) || (Size == 0))
1203 husart->
ErrorCode = HAL_USART_ERROR_NONE;
1207 __HAL_UNLOCK(husart);
1210 SET_BIT(husart->
Instance->CR1, USART_CR1_RXNEIE);
1212 if (husart->
Init.
Parity != USART_PARITY_NONE)
1215 SET_BIT(husart->
Instance->CR1, USART_CR1_PEIE);
1219 SET_BIT(husart->
Instance->CR3, USART_CR3_EIE);
1222 SET_BIT(husart->
Instance->CR1, USART_CR1_TXEIE);
1245 const uint32_t *tmp;
1249 if ((pTxData == NULL) || (Size == 0))
1260 husart->
ErrorCode = HAL_USART_ERROR_NONE;
1276 tmp = (
const uint32_t *)&pTxData;
1280 __HAL_USART_CLEAR_FLAG(husart, USART_FLAG_TC);
1283 __HAL_UNLOCK(husart);
1287 SET_BIT(husart->
Instance->CR3, USART_CR3_DMAT);
1316 if ((pRxData == NULL) || (Size == 0))
1329 husart->
ErrorCode = HAL_USART_ERROR_NONE;
1356 tmp = (uint32_t *)&pRxData;
1365 __HAL_USART_CLEAR_OREFLAG(husart);
1368 __HAL_UNLOCK(husart);
1370 if (husart->
Init.
Parity != USART_PARITY_NONE)
1373 SET_BIT(husart->
Instance->CR1, USART_CR1_PEIE);
1377 SET_BIT(husart->
Instance->CR3, USART_CR3_EIE);
1381 SET_BIT(husart->
Instance->CR3, USART_CR3_DMAR);
1385 SET_BIT(husart->
Instance->CR3, USART_CR3_DMAT);
1411 const uint32_t *tmp;
1415 if ((pTxData == NULL) || (pRxData == NULL) || (Size == 0))
1427 husart->
ErrorCode = HAL_USART_ERROR_NONE;
1452 tmp = (uint32_t *)&pRxData;
1456 tmp = (
const uint32_t *)&pTxData;
1460 __HAL_USART_CLEAR_FLAG(husart, USART_FLAG_TC);
1463 __HAL_USART_CLEAR_OREFLAG(husart);
1466 __HAL_UNLOCK(husart);
1468 if (husart->
Init.
Parity != USART_PARITY_NONE)
1471 SET_BIT(husart->
Instance->CR1, USART_CR1_PEIE);
1475 SET_BIT(husart->
Instance->CR3, USART_CR3_EIE);
1479 SET_BIT(husart->
Instance->CR3, USART_CR3_DMAR);
1483 SET_BIT(husart->
Instance->CR3, USART_CR3_DMAT);
1505 CLEAR_BIT(husart->
Instance->CR3, USART_CR3_DMAT);
1508 __HAL_UNLOCK(husart);
1525 SET_BIT(husart->
Instance->CR3, USART_CR3_DMAT);
1528 __HAL_UNLOCK(husart);
1541 uint32_t dmarequest = 0x00U;
1549 dmarequest = HAL_IS_BIT_SET(husart->
Instance->CR3, USART_CR3_DMAT);
1552 USART_EndTxTransfer(husart);
1555 if (husart->
hdmatx != NULL)
1561 CLEAR_BIT(husart->
Instance->CR3, USART_CR3_DMAT);
1565 dmarequest = HAL_IS_BIT_SET(husart->
Instance->CR3, USART_CR3_DMAR);
1568 USART_EndRxTransfer(husart);
1571 if (husart->
hdmarx != NULL)
1577 CLEAR_BIT(husart->
Instance->CR3, USART_CR3_DMAR);
1599 CLEAR_BIT(husart->
Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE | USART_CR1_TCIE));
1600 CLEAR_BIT(husart->
Instance->CR3, USART_CR3_EIE);
1603 if (HAL_IS_BIT_SET(husart->
Instance->CR3, USART_CR3_DMAT))
1605 CLEAR_BIT(husart->
Instance->CR3, USART_CR3_DMAT);
1608 if (husart->
hdmatx != NULL)
1619 if (HAL_IS_BIT_SET(husart->
Instance->CR3, USART_CR3_DMAR))
1621 CLEAR_BIT(husart->
Instance->CR3, USART_CR3_DMAR);
1624 if (husart->
hdmarx != NULL)
1642 husart->
ErrorCode = HAL_USART_ERROR_NONE;
1664 uint32_t AbortCplt = 0x01U;
1667 CLEAR_BIT(husart->
Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE | USART_CR1_TCIE));
1668 CLEAR_BIT(husart->
Instance->CR3, USART_CR3_EIE);
1673 if (husart->
hdmatx != NULL)
1677 if (HAL_IS_BIT_SET(husart->
Instance->CR3, USART_CR3_DMAT))
1687 if (husart->
hdmarx != NULL)
1691 if (HAL_IS_BIT_SET(husart->
Instance->CR3, USART_CR3_DMAR))
1702 if (HAL_IS_BIT_SET(husart->
Instance->CR3, USART_CR3_DMAT))
1705 CLEAR_BIT(husart->
Instance->CR3, USART_CR3_DMAT);
1708 if (husart->
hdmatx != NULL)
1726 if (HAL_IS_BIT_SET(husart->
Instance->CR3, USART_CR3_DMAR))
1728 CLEAR_BIT(husart->
Instance->CR3, USART_CR3_DMAR);
1731 if (husart->
hdmarx != NULL)
1750 if (AbortCplt == 0x01U)
1757 husart->
ErrorCode = HAL_USART_ERROR_NONE;
1763 #if (USE_HAL_USART_REGISTER_CALLBACKS == 1)
1783 uint32_t isrflags = READ_REG(husart->
Instance->SR);
1784 uint32_t cr1its = READ_REG(husart->
Instance->CR1);
1785 uint32_t cr3its = READ_REG(husart->
Instance->CR3);
1786 uint32_t errorflags = 0x00U;
1787 uint32_t dmarequest = 0x00U;
1790 errorflags = (isrflags & (uint32_t)(USART_SR_PE | USART_SR_FE | USART_SR_ORE | USART_SR_NE));
1791 if (errorflags == RESET)
1794 if (((isrflags & USART_SR_RXNE) != RESET) && ((cr1its & USART_CR1_RXNEIE) != RESET))
1798 USART_Receive_IT(husart);
1802 USART_TransmitReceive_IT(husart);
1808 if ((errorflags != RESET) && (((cr3its & USART_CR3_EIE) != RESET) || ((cr1its & (USART_CR1_RXNEIE | USART_CR1_PEIE)) != RESET)))
1811 if (((isrflags & USART_SR_PE) != RESET) && ((cr1its & USART_CR1_PEIE) != RESET))
1813 husart->
ErrorCode |= HAL_USART_ERROR_PE;
1817 if (((isrflags & USART_SR_NE) != RESET) && ((cr3its & USART_CR3_EIE) != RESET))
1819 husart->
ErrorCode |= HAL_USART_ERROR_NE;
1823 if (((isrflags & USART_SR_FE) != RESET) && ((cr3its & USART_CR3_EIE) != RESET))
1825 husart->
ErrorCode |= HAL_USART_ERROR_FE;
1829 if (((isrflags & USART_SR_ORE) != RESET) && (((cr1its & USART_CR1_RXNEIE) != RESET) || ((cr3its & USART_CR3_EIE) != RESET)))
1831 husart->
ErrorCode |= HAL_USART_ERROR_ORE;
1834 if (husart->
ErrorCode != HAL_USART_ERROR_NONE)
1837 if (((isrflags & USART_SR_RXNE) != RESET) && ((cr1its & USART_CR1_RXNEIE) != RESET))
1841 USART_Receive_IT(husart);
1845 USART_TransmitReceive_IT(husart);
1850 dmarequest = HAL_IS_BIT_SET(husart->
Instance->CR3, USART_CR3_DMAR);
1851 if (((husart->
ErrorCode & HAL_USART_ERROR_ORE) != RESET) || dmarequest)
1855 USART_EndRxTransfer(husart);
1858 if (HAL_IS_BIT_SET(husart->
Instance->CR3, USART_CR3_DMAR))
1860 CLEAR_BIT(husart->
Instance->CR3, USART_CR3_DMAR);
1863 if (husart->
hdmarx != NULL)
1878 #if (USE_HAL_USART_REGISTER_CALLBACKS == 1)
1890 #if (USE_HAL_USART_REGISTER_CALLBACKS == 1)
1902 #if (USE_HAL_USART_REGISTER_CALLBACKS == 1)
1909 husart->
ErrorCode = HAL_USART_ERROR_NONE;
1916 if (((isrflags & USART_SR_TXE) != RESET) && ((cr1its & USART_CR1_TXEIE) != RESET))
1920 USART_Transmit_IT(husart);
1924 USART_TransmitReceive_IT(husart);
1930 if (((isrflags & USART_SR_TC) != RESET) && ((cr1its & USART_CR1_TCIE) != RESET))
1932 USART_EndTransmit_IT(husart);
2073 return husart->
State;
2103 #if (USE_HAL_USART_REGISTER_CALLBACKS == 1)
2127 if ((hdma->
Instance->CR & DMA_SxCR_CIRC) == 0U)
2134 CLEAR_BIT(husart->
Instance->CR3, USART_CR3_DMAT);
2137 SET_BIT(husart->
Instance->CR1, USART_CR1_TCIE);
2145 #if (USE_HAL_USART_REGISTER_CALLBACKS == 1)
2166 #if (USE_HAL_USART_REGISTER_CALLBACKS == 1)
2185 if ((hdma->
Instance->CR & DMA_SxCR_CIRC) == 0U)
2190 CLEAR_BIT(husart->
Instance->CR1, USART_CR1_PEIE);
2191 CLEAR_BIT(husart->
Instance->CR3, USART_CR3_EIE);
2195 CLEAR_BIT(husart->
Instance->CR3, USART_CR3_DMAR);
2196 CLEAR_BIT(husart->
Instance->CR3, USART_CR3_DMAT);
2201 #if (USE_HAL_USART_REGISTER_CALLBACKS == 1)
2212 #if (USE_HAL_USART_REGISTER_CALLBACKS == 1)
2227 #if (USE_HAL_USART_REGISTER_CALLBACKS == 1)
2238 #if (USE_HAL_USART_REGISTER_CALLBACKS == 1)
2259 #if (USE_HAL_USART_REGISTER_CALLBACKS == 1)
2276 uint32_t dmarequest = 0x00U;
2282 dmarequest = HAL_IS_BIT_SET(husart->
Instance->CR3, USART_CR3_DMAT);
2285 USART_EndTxTransfer(husart);
2289 dmarequest = HAL_IS_BIT_SET(husart->
Instance->CR3, USART_CR3_DMAR);
2292 USART_EndRxTransfer(husart);
2295 husart->
ErrorCode |= HAL_USART_ERROR_DMA;
2298 #if (USE_HAL_USART_REGISTER_CALLBACKS == 1)
2318 static HAL_StatusTypeDef USART_WaitOnFlagUntilTimeout(
USART_HandleTypeDef *husart, uint32_t Flag, FlagStatus Status,
2319 uint32_t Tickstart, uint32_t Timeout)
2322 while ((__HAL_USART_GET_FLAG(husart, Flag) ? SET : RESET) == Status)
2325 if (Timeout != HAL_MAX_DELAY)
2327 if ((Timeout == 0U) || ((
HAL_GetTick() - Tickstart) > Timeout))
2330 CLEAR_BIT(husart->
Instance->CR1, USART_CR1_TXEIE);
2333 CLEAR_BIT(husart->
Instance->CR1, USART_CR1_RXNEIE);
2336 CLEAR_BIT(husart->
Instance->CR1, USART_CR1_PEIE);
2339 CLEAR_BIT(husart->
Instance->CR3, USART_CR3_EIE);
2344 __HAL_UNLOCK(husart);
2361 CLEAR_BIT(husart->
Instance->CR1, (USART_CR1_TXEIE | USART_CR1_TCIE));
2375 CLEAR_BIT(husart->
Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE));
2376 CLEAR_BIT(husart->
Instance->CR3, USART_CR3_EIE);
2394 #if (USE_HAL_USART_REGISTER_CALLBACKS == 1)
2418 if (husart->
hdmarx != NULL)
2431 husart->
ErrorCode = HAL_USART_ERROR_NONE;
2437 #if (USE_HAL_USART_REGISTER_CALLBACKS == 1)
2461 if (husart->
hdmatx != NULL)
2474 husart->
ErrorCode = HAL_USART_ERROR_NONE;
2480 #if (USE_HAL_USART_REGISTER_CALLBACKS == 1)
2498 const uint16_t *tmp;
2505 husart->
Instance->DR = (uint16_t)(*tmp & (uint16_t)0x01FF);
2516 CLEAR_BIT(husart->
Instance->CR1, USART_CR1_TXEIE);
2519 SET_BIT(husart->
Instance->CR1, USART_CR1_TCIE);
2538 CLEAR_BIT(husart->
Instance->CR1, USART_CR1_TCIE);
2541 CLEAR_BIT(husart->
Instance->CR3, USART_CR3_EIE);
2545 #if (USE_HAL_USART_REGISTER_CALLBACKS == 1)
2564 uint8_t *pdata8bits;
2565 uint16_t *pdata16bits;
2572 pdata16bits = (uint16_t *) husart->
pRxBuffPtr;
2573 *pdata16bits = (uint16_t)(husart->
Instance->DR & (uint16_t)0x01FF);
2583 *pdata8bits = (uint8_t)(husart->
Instance->DR & (uint8_t)0x00FF);
2587 *pdata8bits = (uint8_t)(husart->
Instance->DR & (uint8_t)0x007F);
2598 CLEAR_BIT(husart->
Instance->CR1, USART_CR1_RXNEIE);
2601 CLEAR_BIT(husart->
Instance->CR1, USART_CR1_PEIE);
2604 CLEAR_BIT(husart->
Instance->CR3, USART_CR3_EIE);
2607 #if (USE_HAL_USART_REGISTER_CALLBACKS == 1)
2622 husart->
Instance->DR = (DUMMY_DATA & (uint16_t)0x0FF);
2640 const uint16_t *pdatatx16bits;
2641 uint16_t *pdatarx16bits;
2647 if (__HAL_USART_GET_FLAG(husart, USART_FLAG_TXE) != RESET)
2651 pdatatx16bits = (
const uint16_t *) husart->
pTxBuffPtr;
2652 husart->
Instance->DR = (uint16_t)(*pdatatx16bits & (uint16_t)0x01FF);
2665 CLEAR_BIT(husart->
Instance->CR1, USART_CR1_TXEIE);
2672 if (__HAL_USART_GET_FLAG(husart, USART_FLAG_RXNE) != RESET)
2676 pdatarx16bits = (uint16_t *) husart->
pRxBuffPtr;
2677 *pdatarx16bits = (uint16_t)(husart->
Instance->DR & (uint16_t)0x01FF);
2701 CLEAR_BIT(husart->
Instance->CR1, USART_CR1_RXNEIE);
2704 CLEAR_BIT(husart->
Instance->CR1, USART_CR1_PEIE);
2707 CLEAR_BIT(husart->
Instance->CR3, USART_CR3_EIE);
2711 #if (USE_HAL_USART_REGISTER_CALLBACKS == 1)
2738 uint32_t tmpreg = 0x00U;
2742 assert_param(IS_USART_INSTANCE(husart->
Instance));
2746 assert_param(IS_USART_BAUDRATE(husart->
Init.
BaudRate));
2748 assert_param(IS_USART_STOPBITS(husart->
Init.
StopBits));
2749 assert_param(IS_USART_PARITY(husart->
Init.
Parity));
2750 assert_param(IS_USART_MODE(husart->
Init.
Mode));
2754 CLEAR_BIT(husart->
Instance->CR1, (USART_CR1_TE | USART_CR1_RE));
2759 tmpreg &= (uint32_t)~((uint32_t)(USART_CR2_CPHA | USART_CR2_CPOL | USART_CR2_CLKEN | USART_CR2_LBCL | USART_CR2_STOP));
2768 WRITE_REG(husart->
Instance->CR2, (uint32_t)tmpreg);
2774 tmpreg &= (uint32_t)~((uint32_t)(USART_CR1_M | USART_CR1_PCE | USART_CR1_PS | USART_CR1_TE | \
2775 USART_CR1_RE | USART_CR1_OVER8));
2785 WRITE_REG(husart->
Instance->CR1, (uint32_t)tmpreg);
2789 CLEAR_BIT(husart->
Instance->CR3, (USART_CR3_RTSE | USART_CR3_CTSE));
2792 #if defined(USART6) && defined(UART9) && defined(UART10)
2798 #elif defined(USART6)
HAL_StatusTypeDef HAL_DMA_Abort(DMA_HandleTypeDef *hdma)
Aborts the DMA Transfer.
HAL_StatusTypeDef HAL_DMA_Abort_IT(DMA_HandleTypeDef *hdma)
Aborts the DMA Transfer in Interrupt mode.
HAL_StatusTypeDef HAL_DMA_Start_IT(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t DataLength)
Start the DMA Transfer with interrupt enabled.
uint32_t HAL_GetTick(void)
Provides a tick value in millisecond.
uint32_t HAL_RCC_GetPCLK1Freq(void)
Returns the PCLK1 frequency.
uint32_t HAL_RCC_GetPCLK2Freq(void)
Returns the PCLK2 frequency.
HAL_StatusTypeDef HAL_USART_Init(USART_HandleTypeDef *husart)
Initialize the USART mode according to the specified parameters in the USART_InitTypeDef and initiali...
HAL_StatusTypeDef HAL_USART_UnRegisterCallback(USART_HandleTypeDef *husart, HAL_USART_CallbackIDTypeDef CallbackID)
Unregister an USART Callback USART callaback is redirected to the weak predefined callback.
void HAL_USART_MspDeInit(USART_HandleTypeDef *husart)
USART MSP DeInit.
HAL_StatusTypeDef HAL_USART_DeInit(USART_HandleTypeDef *husart)
DeInitializes the USART peripheral.
void HAL_USART_MspInit(USART_HandleTypeDef *husart)
USART MSP Init.
HAL_StatusTypeDef HAL_USART_RegisterCallback(USART_HandleTypeDef *husart, HAL_USART_CallbackIDTypeDef CallbackID, pUSART_CallbackTypeDef pCallback)
HAL_StatusTypeDef HAL_USART_Transmit_DMA(USART_HandleTypeDef *husart, const uint8_t *pTxData, uint16_t Size)
Simplex Send an amount of data in DMA mode.
HAL_StatusTypeDef HAL_USART_Receive_IT(USART_HandleTypeDef *husart, uint8_t *pRxData, uint16_t Size)
Simplex Receive an amount of data in non-blocking mode.
HAL_StatusTypeDef HAL_USART_Receive(USART_HandleTypeDef *husart, uint8_t *pRxData, uint16_t Size, uint32_t Timeout)
Full-Duplex Receive an amount of data in blocking mode.
HAL_StatusTypeDef HAL_USART_Transmit_IT(USART_HandleTypeDef *husart, const uint8_t *pTxData, uint16_t Size)
Simplex Send an amount of data in non-blocking mode.
HAL_StatusTypeDef HAL_USART_DMAResume(USART_HandleTypeDef *husart)
Resumes the DMA Transfer.
void HAL_USART_TxRxCpltCallback(USART_HandleTypeDef *husart)
Tx/Rx Transfers completed callback for the non-blocking process.
HAL_StatusTypeDef HAL_USART_TransmitReceive_DMA(USART_HandleTypeDef *husart, const uint8_t *pTxData, uint8_t *pRxData, uint16_t Size)
Full-Duplex Transmit Receive an amount of data in DMA mode.
void HAL_USART_IRQHandler(USART_HandleTypeDef *husart)
This function handles USART interrupt request.
HAL_StatusTypeDef HAL_USART_Transmit(USART_HandleTypeDef *husart, const uint8_t *pTxData, uint16_t Size, uint32_t Timeout)
Simplex Send an amount of data in blocking mode.
HAL_StatusTypeDef HAL_USART_TransmitReceive(USART_HandleTypeDef *husart, const uint8_t *pTxData, uint8_t *pRxData, uint16_t Size, uint32_t Timeout)
Full-Duplex Send and Receive an amount of data in full-duplex mode (blocking mode).
void HAL_USART_ErrorCallback(USART_HandleTypeDef *husart)
USART error callbacks.
HAL_StatusTypeDef HAL_USART_TransmitReceive_IT(USART_HandleTypeDef *husart, const uint8_t *pTxData, uint8_t *pRxData, uint16_t Size)
Full-Duplex Send and Receive an amount of data in full-duplex mode (non-blocking).
void HAL_USART_RxCpltCallback(USART_HandleTypeDef *husart)
Rx Transfer completed callbacks.
HAL_StatusTypeDef HAL_USART_Abort(USART_HandleTypeDef *husart)
Abort ongoing transfer (blocking mode).
void HAL_USART_TxHalfCpltCallback(USART_HandleTypeDef *husart)
Tx Half Transfer completed callbacks.
HAL_StatusTypeDef HAL_USART_Receive_DMA(USART_HandleTypeDef *husart, uint8_t *pRxData, uint16_t Size)
Full-Duplex Receive an amount of data in DMA mode.
HAL_StatusTypeDef HAL_USART_DMAPause(USART_HandleTypeDef *husart)
Pauses the DMA Transfer.
HAL_StatusTypeDef HAL_USART_DMAStop(USART_HandleTypeDef *husart)
Stops the DMA Transfer.
void HAL_USART_TxCpltCallback(USART_HandleTypeDef *husart)
Tx Transfer completed callbacks.
void HAL_USART_AbortCpltCallback(USART_HandleTypeDef *husart)
USART Abort Complete callback.
HAL_StatusTypeDef HAL_USART_Abort_IT(USART_HandleTypeDef *husart)
Abort ongoing transfer (Interrupt mode).
void HAL_USART_RxHalfCpltCallback(USART_HandleTypeDef *husart)
Rx Half Transfer completed callbacks.
HAL_USART_StateTypeDef HAL_USART_GetState(const USART_HandleTypeDef *husart)
Returns the USART state.
uint32_t HAL_USART_GetError(const USART_HandleTypeDef *husart)
Return the USART error code.
DMA_HandleTypeDef * hdmatx
__IO uint16_t RxXferCount
__IO uint16_t TxXferCount
const uint8_t * pTxBuffPtr
void(* TxCpltCallback)(struct __USART_HandleTypeDef *husart)
void(* MspInitCallback)(struct __USART_HandleTypeDef *husart)
void(* MspDeInitCallback)(struct __USART_HandleTypeDef *husart)
DMA_HandleTypeDef * hdmarx
void(* RxCpltCallback)(struct __USART_HandleTypeDef *husart)
void(* TxHalfCpltCallback)(struct __USART_HandleTypeDef *husart)
void(* ErrorCallback)(struct __USART_HandleTypeDef *husart)
void(* AbortCpltCallback)(struct __USART_HandleTypeDef *husart)
__IO HAL_USART_StateTypeDef State
void(* TxRxCpltCallback)(struct __USART_HandleTypeDef *husart)
void(* RxHalfCpltCallback)(struct __USART_HandleTypeDef *husart)
HAL_USART_StateTypeDef
HAL State structures definition.
HAL_USART_CallbackIDTypeDef
HAL USART Callback ID enumeration definition.
void(* pUSART_CallbackTypeDef)(USART_HandleTypeDef *husart)
HAL USART Callback pointer definition.
@ HAL_USART_STATE_BUSY_TX
@ HAL_USART_STATE_BUSY_RX
@ HAL_USART_STATE_BUSY_TX_RX
@ HAL_USART_TX_HALFCOMPLETE_CB_ID
@ HAL_USART_TX_COMPLETE_CB_ID
@ HAL_USART_MSPDEINIT_CB_ID
@ HAL_USART_MSPINIT_CB_ID
@ HAL_USART_TX_RX_COMPLETE_CB_ID
@ HAL_USART_RX_HALFCOMPLETE_CB_ID
@ HAL_USART_ABORT_COMPLETE_CB_ID
@ HAL_USART_RX_COMPLETE_CB_ID
USART handle Structure definition.
void USART_InitCallbacksToDefault(USART_HandleTypeDef *husart)
Initialize the callbacks to their default values.
This file contains all the functions prototypes for the HAL module driver.
DMA handle Structure definition.
void(* XferAbortCallback)(struct __DMA_HandleTypeDef *hdma)
void(* XferCpltCallback)(struct __DMA_HandleTypeDef *hdma)
void(* XferErrorCallback)(struct __DMA_HandleTypeDef *hdma)
void(* XferHalfCpltCallback)(struct __DMA_HandleTypeDef *hdma)
DMA_Stream_TypeDef * Instance