94 #ifdef HAL_USART_MODULE_ENABLED 101 #define DUMMY_DATA ((uint16_t) 0xFFFFU) 102 #define TEACK_REACK_TIMEOUT ((uint32_t) 1000U) 103 #define USART_CR1_FIELDS ((uint32_t)(USART_CR1_M | USART_CR1_PCE | USART_CR1_PS | \ 104 USART_CR1_TE | USART_CR1_RE | USART_CR1_OVER8)) 105 #define USART_CR2_FIELDS ((uint32_t)(USART_CR2_CPHA | USART_CR2_CPOL | \ 106 USART_CR2_CLKEN | USART_CR2_LBCL | USART_CR2_STOP)) 216 if (USART_SetConfig(husart) ==
HAL_ERROR)
231 return (USART_CheckIdleState(husart));
370 uint32_t tickstart = 0U;
374 if((pTxData ==
NULL) || (Size == 0U))
401 tmp = (uint16_t*) pTxData;
402 husart->
Instance->
TDR = (*tmp & (uint16_t)0x01FFU);
407 husart->
Instance->
TDR = (*pTxData++ & (uint8_t)0xFFU);
442 uint32_t tickstart = 0U;
446 if((pRxData ==
NULL) || (Size == 0U))
464 uhMask = husart->
Mask;
479 husart->
Instance->
TDR = (DUMMY_DATA & (uint16_t)0x0FFU);
489 tmp = (uint16_t*) pRxData ;
495 *pRxData++ = (uint8_t)(husart->
Instance->
RDR & (uint8_t)uhMask);
525 uint32_t tickstart = 0U;
529 if((pTxData ==
NULL) || (pRxData ==
NULL) || (Size == 0U))
549 uhMask = husart->
Mask;
564 tmp = (uint16_t*) pTxData;
570 husart->
Instance->
TDR = (*pTxData++ & (uint8_t)uhMask);
581 tmp = (uint16_t*) pRxData ;
587 *pRxData++ = (uint8_t)(husart->
Instance->
RDR & (uint8_t)uhMask);
615 if((pTxData ==
NULL ) || (Size == 0U))
662 if((pRxData ==
NULL ) || (Size == 0U))
694 husart->
Instance->
TDR = (DUMMY_DATA & (uint16_t)0x01FFU);
698 husart->
Instance->
TDR = (DUMMY_DATA & (uint16_t)0x00FFU);
722 if((pTxData ==
NULL) || (pRxData ==
NULL) || (Size == 0U))
778 if((pTxData ==
NULL ) || (Size == 0U))
806 tmp = (uint32_t*)&pTxData;
843 if((pRxData ==
NULL ) || (Size == 0U))
884 tmp = (uint32_t*)&pRxData;
933 if((pTxData ==
NULL) || (pRxData ==
NULL) || (Size == 0U))
971 tmp = (uint32_t*)&pRxData;
975 tmp = (uint32_t*)&pTxData;
1106 USART_EndTxTransfer(husart);
1122 USART_EndRxTransfer(husart);
1147 uint32_t errorflags;
1151 if (errorflags ==
RESET)
1158 USART_Receive_IT(husart);
1162 USART_TransmitReceive_IT(husart);
1203 if(((isrflags & USART_ISR_RXNE) !=
RESET) && ((cr1its & USART_CR1_RXNEIE) !=
RESET))
1205 USART_Receive_IT(husart);
1216 USART_EndRxTransfer(husart);
1266 USART_Transmit_IT(husart);
1270 USART_TransmitReceive_IT(husart);
1278 USART_EndTransmit_IT(husart);
1403 return husart->
State;
1452 husart->
Instance->
TDR = (*tmp & (uint16_t)0x01FFU);
1502 uint16_t uhMask = husart->
Mask;
1510 *tmp = (uint16_t)(husart->
Instance->
RDR & uhMask);
1518 husart->
Instance->
TDR = (DUMMY_DATA & (uint16_t)0x00FFU);
1555 uint16_t uhMask = husart->
Mask;
1566 husart->
Instance->
TDR = (uint16_t)(*tmp & uhMask);
1590 *tmp = (uint16_t)(husart->
Instance->
RDR & uhMask);
1644 if((Timeout == 0U)||((
HAL_GetTick()-Tickstart) >= Timeout))
1797 USART_EndTxTransfer(husart);
1804 USART_EndRxTransfer(husart);
1864 uint32_t tmpreg = 0x0U;
1867 uint16_t brrtemp = 0x0000U;
1868 uint16_t usartdiv = 0x0000U;
1909 switch (clocksource)
1932 brrtemp = usartdiv & 0xFFF0U;
1933 brrtemp |= (uint16_t)((usartdiv & (uint16_t)0x000FU) >> 1U);
1946 uint32_t tickstart = 0U;
1958 if(USART_WaitOnFlagUntilTimeout(husart,
USART_ISR_TEACK, RESET, tickstart, TEACK_REACK_TIMEOUT) !=
HAL_OK)
1968 if(USART_WaitOnFlagUntilTimeout(husart,
USART_ISR_REACK, RESET, tickstart, TEACK_REACK_TIMEOUT) !=
HAL_OK)
#define CLEAR_BIT(REG, BIT)
#define MODIFY_REG(REG, CLEARMASK, SETMASK)
#define HAL_USART_ERROR_PE
HAL_StatusTypeDef HAL_USART_TransmitReceive_DMA(USART_HandleTypeDef *husart, uint8_t *pTxData, uint8_t *pRxData, uint16_t Size)
HAL_USART_StateTypeDef HAL_USART_GetState(USART_HandleTypeDef *husart)
#define IS_USART_POLARITY(__CPOL__)
#define USART_PARITY_NONE
HAL_StatusTypeDef HAL_DMA_Abort(DMA_HandleTypeDef *hdma)
#define HAL_USART_ERROR_NONE
#define assert_param(expr)
Include module's header file.
#define HSI_VALUE
Internal High Speed oscillator (HSI) value. This value is used by the RCC HAL module to compute the s...
DMA_HandleTypeDef * hdmatx
#define __HAL_UNLOCK(__HANDLE__)
HAL_StatusTypeDef HAL_USART_DMAPause(USART_HandleTypeDef *husart)
void HAL_USART_TxHalfCpltCallback(USART_HandleTypeDef *husart)
HAL_StatusTypeDef HAL_DMA_Start_IT(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t DataLength)
void HAL_USART_MspInit(USART_HandleTypeDef *husart)
#define IS_USART_WORD_LENGTH(__LENGTH__)
#define IS_USART_INSTANCE(__INSTANCE__)
#define IS_USART_MODE(__MODE__)
#define IS_USART_BAUDRATE(__BAUDRATE__)
void HAL_USART_TxCpltCallback(USART_HandleTypeDef *husart)
#define IS_USART_PARITY(__PARITY__)
HAL_StatusTypeDef HAL_USART_Transmit_IT(USART_HandleTypeDef *husart, uint8_t *pTxData, uint16_t Size)
void(* XferCpltCallback)(struct __DMA_HandleTypeDef *hdma)
#define __HAL_LOCK(__HANDLE__)
#define USART_WORDLENGTH_9B
uint32_t HAL_RCC_GetPCLK1Freq(void)
HAL_StatusTypeDef HAL_DMA_Abort_IT(DMA_HandleTypeDef *hdma)
#define HAL_USART_ERROR_DMA
#define __HAL_USART_DISABLE(__HANDLE__)
Disable USART.
#define IS_USART_OVERSAMPLING(__SAMPLING__)
#define __HAL_USART_CLEAR_IT(__HANDLE__, __IT_CLEAR__)
Clears the specified USART ISR flag, in setting the proper ICR register flag.
HAL_StatusTypeDef HAL_USART_Transmit_DMA(USART_HandleTypeDef *husart, uint8_t *pTxData, uint16_t Size)
DMA_HandleTypeDef * hdmarx
This file contains all the functions prototypes for the HAL module driver.
#define HAL_USART_ERROR_NE
#define __HAL_USART_ENABLE_IT(__HANDLE__, __INTERRUPT__)
Enables the specified USART interrupt.
DMA_Stream_TypeDef * Instance
HAL_StatusTypeDef HAL_USART_DMAStop(USART_HandleTypeDef *husart)
uint32_t HAL_RCC_GetSysClockFreq(void)
#define LSE_VALUE
External Low Speed oscillator (LSE) value.
USART handle Structure definition.
HAL_USART_StateTypeDef State
HAL_StatusTypeDef HAL_USART_Receive_IT(USART_HandleTypeDef *husart, uint8_t *pRxData, uint16_t Size)
#define IS_USART_LASTBIT(__LASTBIT__)
void(* XferHalfCpltCallback)(struct __DMA_HandleTypeDef *hdma)
HAL_StatusTypeDef HAL_USART_TransmitReceive_IT(USART_HandleTypeDef *husart, uint8_t *pTxData, uint8_t *pRxData, uint16_t Size)
#define __HAL_USART_MASK_COMPUTATION(__HANDLE__)
Computes the USART mask to apply to retrieve the received data according to the word length and to th...
uint32_t HAL_USART_GetError(USART_HandleTypeDef *husart)
#define __HAL_USART_GET_FLAG(__HANDLE__, __FLAG__)
Checks whether the specified USART flag is set or not.
#define USART_GETCLOCKSOURCE(__HANDLE__, __CLOCKSOURCE__)
Reports the USART clock source.
void(* XferAbortCallback)(struct __DMA_HandleTypeDef *hdma)
#define __HAL_USART_ENABLE(__HANDLE__)
Enable USART.
void HAL_USART_ErrorCallback(USART_HandleTypeDef *husart)
#define SET_BIT(REG, BIT)
HAL_StatusTypeDef HAL_USART_Receive(USART_HandleTypeDef *husart, uint8_t *pRxData, uint16_t Size, uint32_t Timeout)
void HAL_USART_MspDeInit(USART_HandleTypeDef *husart)
#define HAL_IS_BIT_SET(REG, BIT)
HAL_StatusTypeDef HAL_USART_Receive_DMA(USART_HandleTypeDef *husart, uint8_t *pRxData, uint16_t Size)
DMA handle Structure definition.
HAL_USART_StateTypeDef
HAL USART State structures definition.
HAL_StatusTypeDef HAL_USART_Transmit(USART_HandleTypeDef *husart, uint8_t *pTxData, uint16_t Size, uint32_t Timeout)
#define IS_USART_STOPBITS(__STOPBITS__)
void HAL_USART_IRQHandler(USART_HandleTypeDef *husart)
HAL_StatusTypeDef HAL_USART_DeInit(USART_HandleTypeDef *husart)
#define HAL_USART_ERROR_ORE
HAL_StatusTypeDef HAL_USART_Init(USART_HandleTypeDef *husart)
HAL_StatusTypeDef HAL_USART_DMAResume(USART_HandleTypeDef *husart)
HAL_StatusTypeDef HAL_USART_TransmitReceive(USART_HandleTypeDef *husart, uint8_t *pTxData, uint8_t *pRxData, uint16_t Size, uint32_t Timeout)
void HAL_USART_TxRxCpltCallback(USART_HandleTypeDef *husart)
void HAL_USART_RxCpltCallback(USART_HandleTypeDef *husart)
#define HAL_USART_ERROR_FE
#define IS_USART_PHASE(__CPHA__)
HAL_StatusTypeDef
HAL Status structures definition.
void HAL_USART_RxHalfCpltCallback(USART_HandleTypeDef *husart)
void(* XferErrorCallback)(struct __DMA_HandleTypeDef *hdma)
uint32_t HAL_GetTick(void)
Provides a tick value in millisecond.
uint32_t HAL_RCC_GetPCLK2Freq(void)
#define USART_CLOCK_ENABLE
USART_ClockSourceTypeDef
USART clock sources definitions.
#define __HAL_USART_DISABLE_IT(__HANDLE__, __INTERRUPT__)
Disables the specified USART interrupt.