@@ -1082,15 +1082,8 @@ static void h_UART_DMAReceiveCplt(DMA_HandleTypeDef *hdma)
1082
1082
in the UART CR3 register */
1083
1083
huart -> Instance -> CR3 &= (uint32_t )~((uint32_t )USART_CR3_DMAR );
1084
1084
1085
- /* Check if a transmit process is ongoing or not */
1086
- if (huart -> State == HAL_UART_STATE_BUSY_TX_RX )
1087
- {
1088
- huart -> State = HAL_UART_STATE_BUSY_TX ;
1089
- }
1090
- else
1091
- {
1092
- huart -> State = HAL_UART_STATE_READY ;
1093
- }
1085
+ /* Update Rx state*/
1086
+ huart -> RxState = HAL_UART_STATE_READY ;
1094
1087
}
1095
1088
HAL_UART_RxCpltCallback (huart );
1096
1089
}
@@ -1104,7 +1097,7 @@ static void h_UART_DMAError(DMA_HandleTypeDef *hdma)
1104
1097
UART_HandleTypeDef * huart = ( UART_HandleTypeDef * )((DMA_HandleTypeDef * )hdma )-> Parent ;
1105
1098
huart -> RxXferCount = 0 ;
1106
1099
huart -> TxXferCount = 0 ;
1107
- huart -> State = HAL_UART_STATE_READY ;
1100
+ huart -> gState = HAL_UART_STATE_READY ;
1108
1101
huart -> ErrorCode |= HAL_UART_ERROR_DMA ;
1109
1102
HAL_UART_ErrorCallback (huart );
1110
1103
}
@@ -1124,7 +1117,7 @@ static HAL_StatusTypeDef MBED_UART_Receive_DMA(UART_HandleTypeDef *huart, uint8_
1124
1117
uint32_t * tmp ;
1125
1118
uint32_t tmp1 = 0 ;
1126
1119
1127
- tmp1 = huart -> State ;
1120
+ tmp1 = HAL_UART_GetState ( huart ) ;
1128
1121
if ((tmp1 == HAL_UART_STATE_READY ) || (tmp1 == HAL_UART_STATE_BUSY_TX )) {
1129
1122
if ((pData == NULL ) || (Size == 0 )) {
1130
1123
return HAL_ERROR ;
@@ -1138,11 +1131,7 @@ static HAL_StatusTypeDef MBED_UART_Receive_DMA(UART_HandleTypeDef *huart, uint8_
1138
1131
1139
1132
huart -> ErrorCode = HAL_UART_ERROR_NONE ;
1140
1133
/* Check if a transmit process is ongoing or not */
1141
- if (huart -> State == HAL_UART_STATE_BUSY_TX ) {
1142
- huart -> State = HAL_UART_STATE_BUSY_TX_RX ;
1143
- } else {
1144
- huart -> State = HAL_UART_STATE_BUSY_RX ;
1145
- }
1134
+ huart -> RxState = HAL_UART_STATE_BUSY_RX ;
1146
1135
1147
1136
/* Set the UART DMA transfer complete callback */
1148
1137
huart -> hdmarx -> XferCpltCallback = h_UART_DMAReceiveCplt ;
@@ -1517,11 +1506,7 @@ void serial_tx_abort_asynch(serial_t *obj)
1517
1506
// reset states
1518
1507
handle -> TxXferCount = 0 ;
1519
1508
// update handle state
1520
- if (handle -> State == HAL_UART_STATE_BUSY_TX_RX ) {
1521
- handle -> State = HAL_UART_STATE_BUSY_RX ;
1522
- } else {
1523
- handle -> State = HAL_UART_STATE_READY ;
1524
- }
1509
+ handle -> gState = HAL_UART_STATE_READY ;
1525
1510
}
1526
1511
1527
1512
/** Abort the ongoing RX transaction It disables the enabled interrupt for RX and
@@ -1538,11 +1523,7 @@ void serial_rx_abort_asynch(serial_t *obj)
1538
1523
// reset states
1539
1524
handle -> RxXferCount = 0 ;
1540
1525
// update handle state
1541
- if (handle -> State == HAL_UART_STATE_BUSY_TX_RX ) {
1542
- handle -> State = HAL_UART_STATE_BUSY_TX ;
1543
- } else {
1544
- handle -> State = HAL_UART_STATE_READY ;
1545
- }
1526
+ handle -> gState = HAL_UART_STATE_READY ;
1546
1527
}
1547
1528
1548
1529
#endif
0 commit comments