168 #ifdef HAL_UART_MODULE_ENABLED 175 #if defined(USART_CR1_FIFOEN) 176 #define USART_CR1_FIELDS ((uint32_t)(USART_CR1_M | USART_CR1_PCE | USART_CR1_PS | \ 177 USART_CR1_TE | USART_CR1_RE | USART_CR1_OVER8| \ 180 #define USART_CR1_FIELDS ((uint32_t)(USART_CR1_M | USART_CR1_PCE | USART_CR1_PS | \ 181 USART_CR1_TE | USART_CR1_RE | USART_CR1_OVER8 )) 184 #if defined(USART_CR1_FIFOEN) 185 #define USART_CR3_FIELDS ((uint32_t)(USART_CR3_RTSE | USART_CR3_CTSE | USART_CR3_ONEBIT| \ 186 USART_CR3_TXFTCFG | USART_CR3_RXFTCFG )) 188 #define USART_CR3_FIELDS ((uint32_t)(USART_CR3_RTSE | USART_CR3_CTSE | USART_CR3_ONEBIT)) 191 #define LPUART_BRR_MIN 0x00000300U 192 #define LPUART_BRR_MAX 0x000FFFFFU 194 #define UART_BRR_MIN 0x10U 195 #define UART_BRR_MAX 0x0000FFFFU 221 #if defined(USART_CR1_FIFOEN) 228 #if defined(USART_CR1_FIFOEN) 327 if (huart->
gState == HAL_UART_STATE_RESET)
332 #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 348 huart->
gState = HAL_UART_STATE_BUSY;
350 __HAL_UART_DISABLE(huart);
367 CLEAR_BIT(huart->
Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN));
369 __HAL_UART_ENABLE(huart);
392 if (huart->
gState == HAL_UART_STATE_RESET)
397 #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 413 huart->
gState = HAL_UART_STATE_BUSY;
415 __HAL_UART_DISABLE(huart);
435 SET_BIT(huart->
Instance->CR3, USART_CR3_HDSEL);
437 __HAL_UART_ENABLE(huart);
465 assert_param(IS_UART_LIN_BREAK_DETECT_LENGTH(BreakDetectLength));
478 if (huart->
gState == HAL_UART_STATE_RESET)
483 #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 499 huart->
gState = HAL_UART_STATE_BUSY;
501 __HAL_UART_DISABLE(huart);
518 CLEAR_BIT(huart->
Instance->CR3, (USART_CR3_HDSEL | USART_CR3_IREN | USART_CR3_SCEN));
521 SET_BIT(huart->
Instance->CR2, USART_CR2_LINEN);
526 __HAL_UART_ENABLE(huart);
562 if (huart->
gState == HAL_UART_STATE_RESET)
567 #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 583 huart->
gState = HAL_UART_STATE_BUSY;
585 __HAL_UART_DISABLE(huart);
602 CLEAR_BIT(huart->
Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN));
604 if (WakeUpMethod == UART_WAKEUPMETHOD_ADDRESSMARK)
607 MODIFY_REG(huart->
Instance->CR2, USART_CR2_ADD, ((uint32_t)Address << UART_CR2_ADDRESS_LSB_POS));
613 __HAL_UART_ENABLE(huart);
636 huart->
gState = HAL_UART_STATE_BUSY;
638 __HAL_UART_DISABLE(huart);
644 #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 657 huart->
gState = HAL_UART_STATE_RESET;
658 huart->
RxState = HAL_UART_STATE_RESET;
695 #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 721 HAL_StatusTypeDef status =
HAL_OK;
723 if (pCallback == NULL)
725 huart->
ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK;
732 if (huart->
gState == HAL_UART_STATE_READY)
772 #if defined(USART_CR1_FIFOEN) 791 huart->
ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK;
797 else if (huart->
gState == HAL_UART_STATE_RESET)
810 huart->
ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK;
818 huart->
ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK;
851 HAL_StatusTypeDef status =
HAL_OK;
855 if (HAL_UART_STATE_READY == huart->
gState)
895 #if defined(USART_CR1_FIFOEN) 914 huart->
ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK;
920 else if (HAL_UART_STATE_RESET == huart->
gState)
933 huart->
ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK;
941 huart->
ErrorCode |= HAL_UART_ERROR_INVALID_CALLBACK;
1047 uint8_t *pdata8bits;
1048 uint16_t *pdata16bits;
1052 if (huart->
gState == HAL_UART_STATE_READY)
1054 if ((pData == NULL) || (Size == 0U))
1062 huart->
gState = HAL_UART_STATE_BUSY_TX;
1074 pdata16bits = (uint16_t *) pData;
1088 if (pdata8bits == NULL)
1090 huart->
Instance->TDR = (uint16_t)(*pdata16bits & 0x01FFU);
1095 huart->
Instance->TDR = (uint8_t)(*pdata8bits & 0xFFU);
1107 huart->
gState = HAL_UART_STATE_READY;
1133 uint8_t *pdata8bits;
1134 uint16_t *pdata16bits;
1139 if (huart->
RxState == HAL_UART_STATE_READY)
1141 if ((pData == NULL) || (Size == 0U))
1149 huart->
RxState = HAL_UART_STATE_BUSY_RX;
1158 UART_MASK_COMPUTATION(huart);
1159 uhMask = huart->
Mask;
1165 pdata16bits = (uint16_t *) pData;
1180 if (pdata8bits == NULL)
1182 *pdata16bits = (uint16_t)(huart->
Instance->RDR & uhMask);
1187 *pdata8bits = (uint8_t)(huart->
Instance->RDR & (uint8_t)uhMask);
1194 huart->
RxState = HAL_UART_STATE_READY;
1216 if (huart->
gState == HAL_UART_STATE_READY)
1218 if ((pData == NULL) || (Size == 0U))
1228 huart->
TxISR = NULL;
1231 huart->
gState = HAL_UART_STATE_BUSY_TX;
1233 #if defined(USART_CR1_FIFOEN) 1235 if (huart->
FifoMode == UART_FIFOMODE_ENABLE)
1250 SET_BIT(huart->
Instance->CR3, USART_CR3_TXFTIE);
1267 SET_BIT(huart->
Instance->CR1, USART_CR1_TXEIE_TXFNFIE);
1283 SET_BIT(huart->
Instance->CR1, USART_CR1_TXEIE);
1304 if (huart->
RxState == HAL_UART_STATE_READY)
1306 if ((pData == NULL) || (Size == 0U))
1316 huart->
RxISR = NULL;
1319 UART_MASK_COMPUTATION(huart);
1322 huart->
RxState = HAL_UART_STATE_BUSY_RX;
1325 SET_BIT(huart->
Instance->CR3, USART_CR3_EIE);
1327 #if defined(USART_CR1_FIFOEN) 1344 SET_BIT(huart->
Instance->CR1, USART_CR1_PEIE);
1345 SET_BIT(huart->
Instance->CR3, USART_CR3_RXFTIE);
1362 SET_BIT(huart->
Instance->CR1, USART_CR1_PEIE | USART_CR1_RXNEIE_RXFNEIE);
1378 SET_BIT(huart->
Instance->CR1, USART_CR1_PEIE | USART_CR1_RXNEIE);
1399 if (huart->
gState == HAL_UART_STATE_READY)
1401 if ((pData == NULL) || (Size == 0U))
1413 huart->
gState = HAL_UART_STATE_BUSY_TX;
1415 if (huart->
hdmatx != NULL)
1438 huart->
gState = HAL_UART_STATE_READY;
1444 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_TCF);
1450 SET_BIT(huart->
Instance->CR3, USART_CR3_DMAT);
1472 if (huart->
RxState == HAL_UART_STATE_READY)
1474 if ((pData == NULL) || (Size == 0U))
1485 huart->
RxState = HAL_UART_STATE_BUSY_RX;
1487 if (huart->
hdmarx != NULL)
1510 huart->
gState = HAL_UART_STATE_READY;
1518 SET_BIT(huart->
Instance->CR1, USART_CR1_PEIE);
1521 SET_BIT(huart->
Instance->CR3, USART_CR3_EIE);
1525 SET_BIT(huart->
Instance->CR3, USART_CR3_DMAR);
1547 if ((HAL_IS_BIT_SET(huart->
Instance->CR3, USART_CR3_DMAT)) &&
1548 (gstate == HAL_UART_STATE_BUSY_TX))
1553 if ((HAL_IS_BIT_SET(huart->
Instance->CR3, USART_CR3_DMAR)) &&
1554 (rxstate == HAL_UART_STATE_BUSY_RX))
1578 if (huart->
gState == HAL_UART_STATE_BUSY_TX)
1581 SET_BIT(huart->
Instance->CR3, USART_CR3_DMAT);
1583 if (huart->
RxState == HAL_UART_STATE_BUSY_RX)
1586 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF);
1589 SET_BIT(huart->
Instance->CR1, USART_CR1_PEIE);
1590 SET_BIT(huart->
Instance->CR3, USART_CR3_EIE);
1593 SET_BIT(huart->
Instance->CR3, USART_CR3_DMAR);
1619 if ((HAL_IS_BIT_SET(huart->
Instance->CR3, USART_CR3_DMAT)) &&
1620 (gstate == HAL_UART_STATE_BUSY_TX))
1625 if (huart->
hdmatx != NULL)
1643 if ((HAL_IS_BIT_SET(huart->
Instance->CR3, USART_CR3_DMAR)) &&
1644 (rxstate == HAL_UART_STATE_BUSY_RX))
1649 if (huart->
hdmarx != NULL)
1683 #if defined(USART_CR1_FIFOEN) 1685 CLEAR_BIT(huart->
Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE | USART_CR1_TXEIE_TXFNFIE | USART_CR1_TCIE));
1686 CLEAR_BIT(huart->
Instance->CR3, USART_CR3_EIE | USART_CR3_RXFTIE | USART_CR3_TXFTIE);
1689 CLEAR_BIT(huart->
Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE | USART_CR1_TCIE));
1694 if (HAL_IS_BIT_SET(huart->
Instance->CR3, USART_CR3_DMAT))
1699 if (huart->
hdmatx != NULL)
1719 if (HAL_IS_BIT_SET(huart->
Instance->CR3, USART_CR3_DMAR))
1724 if (huart->
hdmarx != NULL)
1748 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF);
1750 #if defined(USART_CR1_FIFOEN) 1752 if (huart->
FifoMode == UART_FIFOMODE_ENABLE)
1754 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST);
1759 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST);
1762 huart->
gState = HAL_UART_STATE_READY;
1763 huart->
RxState = HAL_UART_STATE_READY;
1784 #if defined(USART_CR1_FIFOEN) 1794 if (HAL_IS_BIT_SET(huart->
Instance->CR3, USART_CR3_DMAT))
1799 if (huart->
hdmatx != NULL)
1821 #if defined(USART_CR1_FIFOEN) 1823 if (huart->
FifoMode == UART_FIFOMODE_ENABLE)
1825 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST);
1830 huart->
gState = HAL_UART_STATE_READY;
1849 #if defined(USART_CR1_FIFOEN) 1860 if (HAL_IS_BIT_SET(huart->
Instance->CR3, USART_CR3_DMAR))
1865 if (huart->
hdmarx != NULL)
1888 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF);
1891 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST);
1894 huart->
RxState = HAL_UART_STATE_READY;
1915 uint32_t abortcplt = 1U;
1918 #if defined(USART_CR1_FIFOEN) 1919 CLEAR_BIT(huart->
Instance->CR1, (USART_CR1_PEIE | USART_CR1_TCIE | USART_CR1_RXNEIE_RXFNEIE | USART_CR1_TXEIE_TXFNFIE));
1920 CLEAR_BIT(huart->
Instance->CR3, (USART_CR3_EIE | USART_CR3_RXFTIE | USART_CR3_TXFTIE));
1922 CLEAR_BIT(huart->
Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE | USART_CR1_TCIE));
1929 if (huart->
hdmatx != NULL)
1933 if (HAL_IS_BIT_SET(huart->
Instance->CR3, USART_CR3_DMAT))
1943 if (huart->
hdmarx != NULL)
1947 if (HAL_IS_BIT_SET(huart->
Instance->CR3, USART_CR3_DMAR))
1958 if (HAL_IS_BIT_SET(huart->
Instance->CR3, USART_CR3_DMAT))
1964 if (huart->
hdmatx != NULL)
1982 if (HAL_IS_BIT_SET(huart->
Instance->CR3, USART_CR3_DMAR))
1987 if (huart->
hdmarx != NULL)
2006 if (abortcplt == 1U)
2013 huart->
RxISR = NULL;
2014 huart->
TxISR = NULL;
2020 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF);
2022 #if defined(USART_CR1_FIFOEN) 2024 if (huart->
FifoMode == UART_FIFOMODE_ENABLE)
2026 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST);
2031 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST);
2034 huart->
gState = HAL_UART_STATE_READY;
2035 huart->
RxState = HAL_UART_STATE_READY;
2038 #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 2067 #if defined(USART_CR1_FIFOEN) 2075 if (HAL_IS_BIT_SET(huart->
Instance->CR3, USART_CR3_DMAT))
2080 if (huart->
hdmatx != NULL)
2099 huart->
TxISR = NULL;
2102 huart->
gState = HAL_UART_STATE_READY;
2105 #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 2120 huart->
TxISR = NULL;
2122 #if defined(USART_CR1_FIFOEN) 2124 if (huart->
FifoMode == UART_FIFOMODE_ENABLE)
2126 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST);
2131 huart->
gState = HAL_UART_STATE_READY;
2134 #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 2163 #if defined(USART_CR1_FIFOEN) 2172 if (HAL_IS_BIT_SET(huart->
Instance->CR3, USART_CR3_DMAR))
2177 if (huart->
hdmarx != NULL)
2199 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF);
2202 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST);
2205 huart->
RxState = HAL_UART_STATE_READY;
2208 #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 2226 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF);
2229 huart->
RxState = HAL_UART_STATE_READY;
2232 #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 2251 uint32_t isrflags = READ_REG(huart->
Instance->ISR);
2252 uint32_t cr1its = READ_REG(huart->
Instance->CR1);
2253 uint32_t cr3its = READ_REG(huart->
Instance->CR3);
2255 uint32_t errorflags;
2259 errorflags = (isrflags & (uint32_t)(USART_ISR_PE | USART_ISR_FE | USART_ISR_ORE | USART_ISR_NE));
2260 if (errorflags == 0U)
2263 #if defined(USART_CR1_FIFOEN) 2264 if (((isrflags & USART_ISR_RXNE_RXFNE) != 0U)
2265 && (((cr1its & USART_CR1_RXNEIE_RXFNEIE) != 0U)
2266 || ((cr3its & USART_CR3_RXFTIE) != 0U)))
2268 if (((isrflags & USART_ISR_RXNE) != 0U)
2269 && ((cr1its & USART_CR1_RXNEIE) != 0U))
2272 if (huart->
RxISR != NULL)
2274 huart->
RxISR(huart);
2281 #if defined(USART_CR1_FIFOEN) 2282 if ((errorflags != 0U)
2283 && ((((cr3its & (USART_CR3_RXFTIE | USART_CR3_EIE)) != 0U)
2284 || ((cr1its & (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE)) != 0U))))
2286 if ((errorflags != 0U)
2287 && (((cr3its & USART_CR3_EIE) != 0U)
2288 || ((cr1its & (USART_CR1_RXNEIE | USART_CR1_PEIE)) != 0U)))
2292 if (((isrflags & USART_ISR_PE) != 0U) && ((cr1its & USART_CR1_PEIE) != 0U))
2294 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_PEF);
2300 if (((isrflags & USART_ISR_FE) != 0U) && ((cr3its & USART_CR3_EIE) != 0U))
2302 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_FEF);
2308 if (((isrflags & USART_ISR_NE) != 0U) && ((cr3its & USART_CR3_EIE) != 0U))
2310 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_NEF);
2316 #if defined(USART_CR1_FIFOEN) 2317 if (((isrflags & USART_ISR_ORE) != 0U)
2318 && (((cr1its & USART_CR1_RXNEIE_RXFNEIE) != 0U) ||
2319 ((cr3its & (USART_CR3_RXFTIE | USART_CR3_EIE)) != 0U)))
2321 if (((isrflags & USART_ISR_ORE) != 0U)
2322 && (((cr1its & USART_CR1_RXNEIE) != 0U) ||
2323 ((cr3its & USART_CR3_EIE) != 0U)))
2326 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF);
2332 if (huart->
ErrorCode != HAL_UART_ERROR_NONE)
2335 #if defined(USART_CR1_FIFOEN) 2336 if (((isrflags & USART_ISR_RXNE_RXFNE) != 0U)
2337 && (((cr1its & USART_CR1_RXNEIE_RXFNEIE) != 0U)
2338 || ((cr3its & USART_CR3_RXFTIE) != 0U)))
2340 if (((isrflags & USART_ISR_RXNE) != 0U)
2341 && ((cr1its & USART_CR1_RXNEIE) != 0U))
2344 if (huart->
RxISR != NULL)
2346 huart->
RxISR(huart);
2353 if ((HAL_IS_BIT_SET(huart->
Instance->CR3, USART_CR3_DMAR)) ||
2354 ((errorcode & HAL_UART_ERROR_ORE) != 0U))
2362 if (HAL_IS_BIT_SET(huart->
Instance->CR3, USART_CR3_DMAR))
2367 if (huart->
hdmarx != NULL)
2383 #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 2396 #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 2409 #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 2424 if (((isrflags & USART_ISR_WUF) != 0U) && ((cr3its & USART_CR3_WUFIE) != 0U))
2426 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_WUF);
2431 #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 2442 #if defined(USART_CR1_FIFOEN) 2443 if (((isrflags & USART_ISR_TXE_TXFNF) != 0U)
2444 && (((cr1its & USART_CR1_TXEIE_TXFNFIE) != 0U)
2445 || ((cr3its & USART_CR3_TXFTIE) != 0U)))
2447 if (((isrflags & USART_ISR_TXE) != 0U)
2448 && ((cr1its & USART_CR1_TXEIE) != 0U))
2451 if (huart->
TxISR != NULL)
2453 huart->
TxISR(huart);
2459 if (((isrflags & USART_ISR_TC) != 0U) && ((cr1its & USART_CR1_TCIE) != 0U))
2465 #if defined(USART_CR1_FIFOEN) 2467 if (((isrflags & USART_ISR_TXFE) != 0U) && ((cr1its & USART_CR1_TXFEIE) != 0U))
2469 #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 2480 if (((isrflags & USART_ISR_RXFF) != 0U) && ((cr1its & USART_CR1_RXFFIE) != 0U))
2482 #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 2650 huart->
gState = HAL_UART_STATE_BUSY;
2653 SET_BIT(huart->
Instance->CR1, USART_CR1_MME);
2655 huart->
gState = HAL_UART_STATE_READY;
2670 huart->
gState = HAL_UART_STATE_BUSY;
2675 huart->
gState = HAL_UART_STATE_READY;
2688 __HAL_UART_SEND_REQ(huart, UART_MUTE_MODE_REQUEST);
2699 huart->
gState = HAL_UART_STATE_BUSY;
2705 SET_BIT(huart->
Instance->CR1, USART_CR1_TE);
2707 huart->
gState = HAL_UART_STATE_READY;
2722 huart->
gState = HAL_UART_STATE_BUSY;
2728 SET_BIT(huart->
Instance->CR1, USART_CR1_RE);
2730 huart->
gState = HAL_UART_STATE_READY;
2750 huart->
gState = HAL_UART_STATE_BUSY;
2753 __HAL_UART_SEND_REQ(huart, UART_SENDBREAK_REQUEST);
2755 huart->
gState = HAL_UART_STATE_READY;
2825 #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 2838 #if defined(USART_CR1_FIFOEN) 2856 uint32_t usartdiv = 0x00000000U;
2857 HAL_StatusTypeDef ret =
HAL_OK;
2858 uint32_t lpuart_ker_ck_pres = 0x00000000U;
2863 if (UART_INSTANCE_LOWPOWER(huart))
2877 #if defined(USART_PRESC_PRESCALER) 2889 #
if defined(USART_CR1_FIFOEN)
2890 tmpreg |= (uint32_t)huart->
FifoMode;
2907 if (!(UART_INSTANCE_LOWPOWER(huart)))
2913 #if defined(USART_PRESC_PRESCALER) 2921 UART_GETCLOCKSOURCE(huart, clocksource);
2924 if (UART_INSTANCE_LOWPOWER(huart))
2927 switch (clocksource)
2930 #if defined(USART_PRESC_PRESCALER) 2937 #if defined(USART_PRESC_PRESCALER) 2938 lpuart_ker_ck_pres = ((uint32_t)HSI_VALUE / UART_GET_DIV_FACTOR(huart->
Init.
ClockPrescaler));
2940 lpuart_ker_ck_pres = (uint32_t)HSI_VALUE;
2944 #if defined(USART_PRESC_PRESCALER) 2951 #if defined(USART_PRESC_PRESCALER) 2952 lpuart_ker_ck_pres = ((uint32_t)LSE_VALUE / UART_GET_DIV_FACTOR(huart->
Init.
ClockPrescaler));
2954 lpuart_ker_ck_pres = (uint32_t)LSE_VALUE;
2964 if (lpuart_ker_ck_pres != 0U)
2967 if ((lpuart_ker_ck_pres < (3U * huart->
Init.
BaudRate)) ||
2974 switch (clocksource)
2977 #if defined(USART_PRESC_PRESCALER) 2984 #if defined(USART_PRESC_PRESCALER) 2987 usartdiv = (uint32_t)(UART_DIV_LPUART(HSI_VALUE, huart->
Init.
BaudRate));
2991 #if defined(USART_PRESC_PRESCALER) 2998 #if defined(USART_PRESC_PRESCALER) 3001 usartdiv = (uint32_t)(UART_DIV_LPUART(LSE_VALUE, huart->
Init.
BaudRate));
3011 if ((usartdiv >= LPUART_BRR_MIN) && (usartdiv <= LPUART_BRR_MAX))
3025 switch (clocksource)
3028 #if defined(USART_PRESC_PRESCALER) 3035 #if defined(USART_PRESC_PRESCALER) 3042 #if defined(USART_PRESC_PRESCALER) 3045 usartdiv = (uint16_t)(UART_DIV_SAMPLING8(HSI_VALUE, huart->
Init.
BaudRate));
3049 #if defined(USART_PRESC_PRESCALER) 3056 #if defined(USART_PRESC_PRESCALER) 3059 usartdiv = (uint16_t)(UART_DIV_SAMPLING8(LSE_VALUE, huart->
Init.
BaudRate));
3069 if ((usartdiv >= UART_BRR_MIN) && (usartdiv <= UART_BRR_MAX))
3071 brrtemp = (uint16_t)(usartdiv & 0xFFF0U);
3072 brrtemp |= (uint16_t)((usartdiv & (uint16_t)0x000FU) >> 1U);
3082 switch (clocksource)
3085 #if defined(USART_PRESC_PRESCALER) 3092 #if defined(USART_PRESC_PRESCALER) 3099 #if defined(USART_PRESC_PRESCALER) 3102 usartdiv = (uint16_t)(UART_DIV_SAMPLING16(HSI_VALUE, huart->
Init.
BaudRate));
3106 #if defined(USART_PRESC_PRESCALER) 3113 #if defined(USART_PRESC_PRESCALER) 3116 usartdiv = (uint16_t)(UART_DIV_SAMPLING16(LSE_VALUE, huart->
Init.
BaudRate));
3126 if ((usartdiv >= UART_BRR_MIN) && (usartdiv <= UART_BRR_MAX))
3136 #if defined(USART_CR1_FIFOEN) 3143 huart->
RxISR = NULL;
3144 huart->
TxISR = NULL;
3239 if ((huart->
Instance->CR1 & USART_CR1_TE) == USART_CR1_TE)
3250 if ((huart->
Instance->CR1 & USART_CR1_RE) == USART_CR1_RE)
3261 huart->
gState = HAL_UART_STATE_READY;
3262 huart->
RxState = HAL_UART_STATE_READY;
3279 uint32_t Tickstart, uint32_t Timeout)
3282 while ((__HAL_UART_GET_FLAG(huart, Flag) ? SET : RESET) == Status)
3285 if (Timeout != HAL_MAX_DELAY)
3287 if (((
HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U))
3290 #if defined(USART_CR1_FIFOEN) 3291 CLEAR_BIT(huart->
Instance->CR1, (USART_CR1_RXNEIE_RXFNEIE | USART_CR1_PEIE | USART_CR1_TXEIE_TXFNFIE));
3293 CLEAR_BIT(huart->
Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE));
3297 huart->
gState = HAL_UART_STATE_READY;
3298 huart->
RxState = HAL_UART_STATE_READY;
3317 #if defined(USART_CR1_FIFOEN) 3327 huart->
gState = HAL_UART_STATE_READY;
3339 #if defined(USART_CR1_FIFOEN) 3348 huart->
RxState = HAL_UART_STATE_READY;
3351 huart->
RxISR = NULL;
3365 if (HAL_IS_BIT_CLR(hdma->
Instance->CCR, DMA_CCR_CIRC))
3374 SET_BIT(huart->
Instance->CR1, USART_CR1_TCIE);
3379 #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 3398 #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 3417 if (HAL_IS_BIT_CLR(hdma->
Instance->CCR, DMA_CCR_CIRC))
3430 huart->
RxState = HAL_UART_STATE_READY;
3433 #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 3451 #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 3473 if ((HAL_IS_BIT_SET(huart->
Instance->CR3, USART_CR3_DMAT)) &&
3474 (gstate == HAL_UART_STATE_BUSY_TX))
3481 if ((HAL_IS_BIT_SET(huart->
Instance->CR3, USART_CR3_DMAR)) &&
3482 (rxstate == HAL_UART_STATE_BUSY_RX))
3490 #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 3511 #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 3535 if (huart->
hdmarx != NULL)
3551 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF);
3553 #if defined(USART_CR1_FIFOEN) 3555 if (huart->
FifoMode == UART_FIFOMODE_ENABLE)
3557 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST);
3562 huart->
gState = HAL_UART_STATE_READY;
3563 huart->
RxState = HAL_UART_STATE_READY;
3566 #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 3591 if (huart->
hdmatx != NULL)
3607 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF);
3610 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST);
3613 huart->
gState = HAL_UART_STATE_READY;
3614 huart->
RxState = HAL_UART_STATE_READY;
3617 #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 3641 #if defined(USART_CR1_FIFOEN) 3643 if (huart->
FifoMode == UART_FIFOMODE_ENABLE)
3645 __HAL_UART_SEND_REQ(huart, UART_TXDATA_FLUSH_REQUEST);
3650 huart->
gState = HAL_UART_STATE_READY;
3653 #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 3677 __HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF);
3680 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST);
3683 huart->
RxState = HAL_UART_STATE_READY;
3686 #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 3705 if (huart->
gState == HAL_UART_STATE_BUSY_TX)
3710 #if defined(USART_CR1_FIFOEN) 3717 SET_BIT(huart->
Instance->CR1, USART_CR1_TCIE);
3740 if (huart->
gState == HAL_UART_STATE_BUSY_TX)
3745 #if defined(USART_CR1_FIFOEN) 3752 SET_BIT(huart->
Instance->CR1, USART_CR1_TCIE);
3757 huart->
Instance->TDR = (((uint32_t)(*tmp)) & 0x01FFUL);
3764 #if defined(USART_CR1_FIFOEN) 3774 uint16_t nb_tx_data;
3777 if (huart->
gState == HAL_UART_STATE_BUSY_TX)
3787 SET_BIT(huart->
Instance->CR1, USART_CR1_TCIE);
3791 else if (READ_BIT(huart->
Instance->ISR, USART_ISR_TXE_TXFNF) != 0U)
3815 uint16_t nb_tx_data;
3818 if (huart->
gState == HAL_UART_STATE_BUSY_TX)
3828 SET_BIT(huart->
Instance->CR1, USART_CR1_TCIE);
3832 else if (READ_BIT(huart->
Instance->ISR, USART_ISR_TXE_TXFNF) != 0U)
3835 huart->
Instance->TDR = (((uint32_t)(*tmp)) & 0x01FFUL);
3860 huart->
gState = HAL_UART_STATE_READY;
3863 huart->
TxISR = NULL;
3865 #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 3881 uint16_t uhMask = huart->
Mask;
3885 if (huart->
RxState == HAL_UART_STATE_BUSY_RX)
3887 uhdata = (uint16_t) READ_REG(huart->
Instance->RDR);
3888 *huart->
pRxBuffPtr = (uint8_t)(uhdata & (uint8_t)uhMask);
3895 #if defined(USART_CR1_FIFOEN) 3905 huart->
RxState = HAL_UART_STATE_READY;
3908 huart->
RxISR = NULL;
3910 #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 3922 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST);
3936 uint16_t uhMask = huart->
Mask;
3940 if (huart->
RxState == HAL_UART_STATE_BUSY_RX)
3942 uhdata = (uint16_t) READ_REG(huart->
Instance->RDR);
3944 *tmp = (uint16_t)(uhdata & uhMask);
3951 #if defined(USART_CR1_FIFOEN) 3961 huart->
RxState = HAL_UART_STATE_READY;
3964 huart->
RxISR = NULL;
3966 #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 3978 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST);
3982 #if defined(USART_CR1_FIFOEN) 3992 uint16_t uhMask = huart->
Mask;
3994 uint16_t nb_rx_data;
3995 uint16_t rxdatacount;
3998 if (huart->
RxState == HAL_UART_STATE_BUSY_RX)
4002 uhdata = (uint16_t) READ_REG(huart->
Instance->RDR);
4003 *huart->
pRxBuffPtr = (uint8_t)(uhdata & (uint8_t)uhMask);
4016 huart->
RxState = HAL_UART_STATE_READY;
4019 huart->
RxISR = NULL;
4021 #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 4036 if ((rxdatacount != 0U) && (rxdatacount < huart->NbRxDataToProcess))
4045 SET_BIT(huart->
Instance->CR1, USART_CR1_RXNEIE_RXFNEIE);
4051 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST);
4065 uint16_t uhMask = huart->
Mask;
4067 uint16_t nb_rx_data;
4068 uint16_t rxdatacount;
4071 if (huart->
RxState == HAL_UART_STATE_BUSY_RX)
4075 uhdata = (uint16_t) READ_REG(huart->
Instance->RDR);
4077 *tmp = (uint16_t)(uhdata & uhMask);
4090 huart->
RxState = HAL_UART_STATE_READY;
4093 huart->
RxISR = NULL;
4095 #if (USE_HAL_UART_REGISTER_CALLBACKS == 1) 4110 if ((rxdatacount != 0U) && (rxdatacount < huart->NbRxDataToProcess))
4119 SET_BIT(huart->
Instance->CR1, USART_CR1_RXNEIE_RXFNEIE);
4125 __HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST);
HAL_StatusTypeDef HAL_UART_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)
Receive an amount of data in DMA mode.
void(* TxFifoEmptyCallback)(struct __UART_HandleTypeDef *huart)
static void UART_RxISR_16BIT_FIFOEN(UART_HandleTypeDef *huart)
RX interrrupt handler for 9 bits data word length and FIFO mode is enabled.
static void UART_DMATxOnlyAbortCallback(DMA_HandleTypeDef *hdma)
DMA UART Tx communication abort callback, when initiated by user by a call to HAL_UART_AbortTransmit_...
void(* TxISR)(struct __UART_HandleTypeDef *huart)
HAL_StatusTypeDef HAL_MultiProcessor_Init(UART_HandleTypeDef *huart, uint8_t Address, uint32_t WakeUpMethod)
Initialize the multiprocessor mode according to the specified parameters in the UART_InitTypeDef and ...
register uint32_t brrtemp
void(* XferAbortCallback)(struct __DMA_HandleTypeDef *hdma)
UART handle Structure definition.
void HAL_UARTEx_TxFifoEmptyCallback(UART_HandleTypeDef *huart)
UART TX Fifo empty callback.
__IO HAL_UART_StateTypeDef RxState
void(* RxCpltCallback)(struct __UART_HandleTypeDef *huart)
HAL_StatusTypeDef HAL_UART_RegisterCallback(UART_HandleTypeDef *huart, HAL_UART_CallbackIDTypeDef CallbackID, pUART_CallbackTypeDef pCallback)
Register a User UART Callback To be used instead of the weak predefined callback. ...
uint32_t AutoBaudRateMode
DMA handle Structure definition.
void(* XferCpltCallback)(struct __DMA_HandleTypeDef *hdma)
void(* RxHalfCpltCallback)(struct __UART_HandleTypeDef *huart)
uint16_t NbTxDataToProcess
if(lpuartdiv >=LPUART_BRR_MIN_VALUE)
uint16_t NbRxDataToProcess
DMA_HandleTypeDef * hdmarx
HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout)
Send an amount of data in blocking mode.
This file contains all the functions prototypes for the HAL module driver.
uint32_t RxPinLevelInvert
HAL_StatusTypeDef HAL_MultiProcessor_EnableMuteMode(UART_HandleTypeDef *huart)
Enable UART in mute mode (does not mean UART enters mute mode; to enter mute mode, HAL_MultiProcessor_EnterMuteMode() API must be called).
uint32_t DMADisableonRxError
uint32_t HAL_UART_StateTypeDef
HAL UART State definition.
HAL_StatusTypeDef UART_CheckIdleState(UART_HandleTypeDef *huart)
Check the UART Idle State.
HAL_StatusTypeDef HAL_UART_AbortReceive(UART_HandleTypeDef *huart)
Abort ongoing Receive transfer (blocking mode).
static void UART_DMAAbortOnError(DMA_HandleTypeDef *hdma)
DMA UART communication abort callback, when initiated by HAL services on Error (To be called at end o...
static void UART_DMAError(DMA_HandleTypeDef *hdma)
DMA UART communication error callback.
HAL_StatusTypeDef HAL_LIN_SendBreak(UART_HandleTypeDef *huart)
Transmit break characters.
void HAL_UART_TxHalfCpltCallback(UART_HandleTypeDef *huart)
Tx Half Transfer completed callback.
void HAL_UART_AbortCpltCallback(UART_HandleTypeDef *huart)
UART Abort Complete callback.
HAL_StatusTypeDef HAL_UART_AbortReceive_IT(UART_HandleTypeDef *huart)
Abort ongoing Receive transfer (Interrupt mode).
void HAL_UARTEx_RxFifoFullCallback(UART_HandleTypeDef *huart)
UART RX Fifo full callback.
uint32_t HAL_GetTick(void)
Provide a tick value in millisecond.
void UART_AdvFeatureConfig(UART_HandleTypeDef *huart)
Configure the UART peripheral advanced features.
DMA_Channel_TypeDef * Instance
void(* XferErrorCallback)(struct __DMA_HandleTypeDef *hdma)
__IO uint16_t TxXferCount
UART_ClockSourceTypeDef
UART clock sources definition.
HAL_StatusTypeDef HAL_DMA_Abort_IT(DMA_HandleTypeDef *hdma)
Aborts the DMA Transfer in Interrupt mode.
void(* XferHalfCpltCallback)(struct __DMA_HandleTypeDef *hdma)
static void UART_EndRxTransfer(UART_HandleTypeDef *huart)
End ongoing Rx transfer on UART peripheral (following error detection or Reception completion)...
void(* WakeupCallback)(struct __UART_HandleTypeDef *huart)
HAL_StatusTypeDef HAL_UART_Init(UART_HandleTypeDef *huart)
Initialize the UART mode according to the specified parameters in the UART_InitTypeDef and initialize...
void(* pUART_CallbackTypeDef)(UART_HandleTypeDef *huart)
HAL UART Callback pointer definition.
uint32_t HAL_RCC_GetPCLK2Freq(void)
Return the PCLK2 frequency.
static void UART_TxISR_8BIT_FIFOEN(UART_HandleTypeDef *huart)
TX interrrupt handler for 7 or 8 bits data word length and FIFO mode is enabled.
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.
static void UART_DMAReceiveCplt(DMA_HandleTypeDef *hdma)
DMA UART receive process complete callback.
CLEAR_BIT(hrtc->Instance->CR, RTC_CR_WUTE)
void HAL_UART_AbortReceiveCpltCallback(UART_HandleTypeDef *huart)
UART Abort Receive Complete callback.
HAL_StatusTypeDef HAL_UART_AbortTransmit(UART_HandleTypeDef *huart)
Abort ongoing Transmit transfer (blocking mode).
static void UART_DMARxAbortCallback(DMA_HandleTypeDef *hdma)
DMA UART Rx communication abort callback, when initiated by user (To be called at end of DMA Rx Abort...
void HAL_UART_IRQHandler(UART_HandleTypeDef *huart)
Handle UART interrupt request.
HAL_StatusTypeDef HAL_UART_Receive(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout)
Receive an amount of data in blocking mode.
HAL_StatusTypeDef HAL_UART_AbortTransmit_IT(UART_HandleTypeDef *huart)
Abort ongoing Transmit transfer (Interrupt mode).
void HAL_UART_MspInit(UART_HandleTypeDef *huart)
Initialize the UART MSP.
HAL_StatusTypeDef HAL_UART_DMAPause(UART_HandleTypeDef *huart)
Pause the DMA Transfer.
HAL_StatusTypeDef HAL_UART_DMAResume(UART_HandleTypeDef *huart)
Resume the DMA Transfer.
HAL_UART_StateTypeDef HAL_UART_GetState(UART_HandleTypeDef *huart)
Return the UART handle state.
HAL_StatusTypeDef HAL_UART_UnRegisterCallback(UART_HandleTypeDef *huart, HAL_UART_CallbackIDTypeDef CallbackID)
Unregister an UART Callback UART callaback is redirected to the weak predefined callback.
HAL_StatusTypeDef HAL_MultiProcessor_DisableMuteMode(UART_HandleTypeDef *huart)
Disable UART mute mode (does not mean the UART actually exits mute mode as it may not have been in mu...
static void UART_RxISR_8BIT_FIFOEN(UART_HandleTypeDef *huart)
RX interrrupt handler for 7 or 8 bits data word length and FIFO mode is enabled.
HAL_StatusTypeDef HAL_HalfDuplex_EnableReceiver(UART_HandleTypeDef *huart)
Enable the UART receiver and disable the UART transmitter.
HAL_StatusTypeDef HAL_HalfDuplex_Init(UART_HandleTypeDef *huart)
Initialize the half-duplex mode according to the specified parameters in the UART_InitTypeDef and cre...
HAL_StatusTypeDef HAL_DMA_Abort(DMA_HandleTypeDef *hdma)
Abort the DMA Transfer.
HAL_StatusTypeDef HAL_UART_DMAStop(UART_HandleTypeDef *huart)
Stop the DMA Transfer.
void(* TxCpltCallback)(struct __UART_HandleTypeDef *huart)
HAL_StatusTypeDef HAL_HalfDuplex_EnableTransmitter(UART_HandleTypeDef *huart)
Enable the UART transmitter and disable the UART receiver.
static void UART_DMATxAbortCallback(DMA_HandleTypeDef *hdma)
DMA UART Tx communication abort callback, when initiated by user (To be called at end of DMA Tx Abort...
void HAL_UART_RxHalfCpltCallback(UART_HandleTypeDef *huart)
Rx Half Transfer completed callback.
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
Rx Transfer completed callback.
uint32_t TxPinLevelInvert
__IO uint16_t RxXferCount
void(* RxISR)(struct __UART_HandleTypeDef *huart)
void(* TxHalfCpltCallback)(struct __UART_HandleTypeDef *huart)
DMA_HandleTypeDef * hdmatx
HAL_StatusTypeDef HAL_UART_DeInit(UART_HandleTypeDef *huart)
DeInitialize the UART peripheral.
static void UART_RxISR_8BIT(UART_HandleTypeDef *huart)
RX interrrupt handler for 7 or 8 bits data word length .
UART_AdvFeatureInitTypeDef AdvancedInit
void(* MspInitCallback)(struct __UART_HandleTypeDef *huart)
void(* ErrorCallback)(struct __UART_HandleTypeDef *huart)
uint32_t HAL_UART_GetError(UART_HandleTypeDef *huart)
Return the UART handle error code.
static void UART_EndTransmit_IT(UART_HandleTypeDef *huart)
Wrap up transmission in non-blocking mode.
static void UART_TxISR_16BIT(UART_HandleTypeDef *huart)
TX interrrupt handler for 9 bits data word length.
void HAL_UARTEx_WakeupCallback(UART_HandleTypeDef *huart)
UART wakeup from Stop mode callback.
void UART_InitCallbacksToDefault(UART_HandleTypeDef *huart)
Initialize the callbacks to their default values.
HAL_StatusTypeDef HAL_UART_Transmit_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)
Send an amount of data in interrupt mode.
static void UART_DMATransmitCplt(DMA_HandleTypeDef *hdma)
DMA UART transmit process complete callback.
HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)
Receive an amount of data in interrupt mode.
void HAL_UART_MspDeInit(UART_HandleTypeDef *huart)
DeInitialize the UART MSP.
void HAL_UART_AbortTransmitCpltCallback(UART_HandleTypeDef *huart)
UART Abort Complete callback.
ADC handle Structure definition.
uint32_t HAL_RCC_GetSysClockFreq(void)
Return the SYSCLK frequency.
HAL_UART_CallbackIDTypeDef
HAL UART Callback ID enumeration definition.
HAL_StatusTypeDef HAL_UART_Abort(UART_HandleTypeDef *huart)
Abort ongoing transfers (blocking mode).
MODIFY_REG(hrtc->Instance->CR, RTC_CR_WUCKSEL,(uint32_t) WakeUpClock)
HAL_StatusTypeDef UART_WaitOnFlagUntilTimeout(UART_HandleTypeDef *huart, uint32_t Flag, FlagStatus Status, uint32_t Tickstart, uint32_t Timeout)
Handle UART Communication Timeout.
static void UART_DMARxHalfCplt(DMA_HandleTypeDef *hdma)
DMA UART receive process half complete callback.
static void UART_DMATxHalfCplt(DMA_HandleTypeDef *hdma)
DMA UART transmit process half complete callback.
static void UART_TxISR_16BIT_FIFOEN(UART_HandleTypeDef *huart)
TX interrrupt handler for 9 bits data word length and FIFO mode is enabled.
void(* RxFifoFullCallback)(struct __UART_HandleTypeDef *huart)
HAL_StatusTypeDef HAL_UART_Abort_IT(UART_HandleTypeDef *huart)
Abort ongoing transfers (Interrupt mode).
static void UART_EndTxTransfer(UART_HandleTypeDef *huart)
End ongoing Tx transfer on UART peripheral (following error detection or Transmit completion)...
static void UART_RxISR_16BIT(UART_HandleTypeDef *huart)
RX interrrupt handler for 9 bits data word length .
void(* AbortCpltCallback)(struct __UART_HandleTypeDef *huart)
uint32_t AutoBaudRateEnable
uint32_t HAL_RCC_GetPCLK1Freq(void)
Return the PCLK1 frequency.
void HAL_MultiProcessor_EnterMuteMode(UART_HandleTypeDef *huart)
Enter UART mute mode (means UART actually enters mute mode).
static void UART_DMARxOnlyAbortCallback(DMA_HandleTypeDef *hdma)
DMA UART Rx communication abort callback, when initiated by user by a call to HAL_UART_AbortReceive_I...
void(* MspDeInitCallback)(struct __UART_HandleTypeDef *huart)
HAL_StatusTypeDef HAL_LIN_Init(UART_HandleTypeDef *huart, uint32_t BreakDetectLength)
Initialize the LIN mode according to the specified parameters in the UART_InitTypeDef and creates the...
void(* AbortTransmitCpltCallback)(struct __UART_HandleTypeDef *huart)
void(* AbortReceiveCpltCallback)(struct __UART_HandleTypeDef *huart)
HAL_StatusTypeDef UART_SetConfig(UART_HandleTypeDef *huart)
Configure the UART peripheral.
assert_param(IS_RTC_WAKEUP_CLOCK(WakeUpClock))
void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart)
Tx Transfer completed callback.
__IO HAL_UART_StateTypeDef gState
HAL_StatusTypeDef HAL_UART_Transmit_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)
Send an amount of data in DMA mode.
static void UART_TxISR_8BIT(UART_HandleTypeDef *huart)
TX interrrupt handler for 7 or 8 bits data word length .
void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart)
UART error callback.
uint32_t HAL_DMA_GetError(DMA_HandleTypeDef *hdma)
Return the DMA error code.