Skip to content

Commit 3721ac4

Browse files
committed
STM32 serial RX/TX active patch
In serial_tx_active and serial_rx_active functions, we check the internal state value with HAL_UART_STATE_BUSY_TX = 0x21U, HAL_UART_STATE_BUSY_RX = 0x22U, It seems that value can also be : HAL_UART_STATE_BUSY_TX_RX = 0x23U,
1 parent cfe0789 commit 3721ac4

File tree

9 files changed

+18
-18
lines changed

9 files changed

+18
-18
lines changed

targets/TARGET_STM/TARGET_STM32F0/serial_device.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -550,7 +550,7 @@ uint8_t serial_tx_active(serial_t *obj)
550550
struct serial_s *obj_s = SERIAL_S(obj);
551551
UART_HandleTypeDef *huart = &uart_handlers[obj_s->index];
552552

553-
return ((HAL_UART_GetState(huart) == HAL_UART_STATE_BUSY_TX) ? 1 : 0);
553+
return (((HAL_UART_GetState(huart) & HAL_UART_STATE_BUSY_TX) == HAL_UART_STATE_BUSY_TX) ? 1 : 0);
554554
}
555555

556556
/**
@@ -566,7 +566,7 @@ uint8_t serial_rx_active(serial_t *obj)
566566
struct serial_s *obj_s = SERIAL_S(obj);
567567
UART_HandleTypeDef *huart = &uart_handlers[obj_s->index];
568568

569-
return ((HAL_UART_GetState(huart) == HAL_UART_STATE_BUSY_RX) ? 1 : 0);
569+
return (((HAL_UART_GetState(huart) & HAL_UART_STATE_BUSY_RX) == HAL_UART_STATE_BUSY_RX) ? 1 : 0);
570570
}
571571

572572
void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart)

targets/TARGET_STM/TARGET_STM32F1/serial_device.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -424,7 +424,7 @@ uint8_t serial_tx_active(serial_t *obj)
424424
struct serial_s *obj_s = SERIAL_S(obj);
425425
UART_HandleTypeDef *huart = &uart_handlers[obj_s->index];
426426

427-
return ((HAL_UART_GetState(huart) == HAL_UART_STATE_BUSY_TX) ? 1 : 0);
427+
return (((HAL_UART_GetState(huart) & HAL_UART_STATE_BUSY_TX) == HAL_UART_STATE_BUSY_TX) ? 1 : 0);
428428
}
429429

430430
/**
@@ -440,7 +440,7 @@ uint8_t serial_rx_active(serial_t *obj)
440440
struct serial_s *obj_s = SERIAL_S(obj);
441441
UART_HandleTypeDef *huart = &uart_handlers[obj_s->index];
442442

443-
return ((HAL_UART_GetState(huart) == HAL_UART_STATE_BUSY_RX) ? 1 : 0);
443+
return (((HAL_UART_GetState(huart) & HAL_UART_STATE_BUSY_RX) == HAL_UART_STATE_BUSY_RX) ? 1 : 0);
444444
}
445445

446446
void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart)

targets/TARGET_STM/TARGET_STM32F2/serial_device.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -507,7 +507,7 @@ uint8_t serial_tx_active(serial_t *obj)
507507
struct serial_s *obj_s = SERIAL_S(obj);
508508
UART_HandleTypeDef *huart = &uart_handlers[obj_s->index];
509509

510-
return ((HAL_UART_GetState(huart) == HAL_UART_STATE_BUSY_TX) ? 1 : 0);
510+
return (((HAL_UART_GetState(huart) & HAL_UART_STATE_BUSY_TX) == HAL_UART_STATE_BUSY_TX) ? 1 : 0);
511511
}
512512

513513
/**
@@ -523,7 +523,7 @@ uint8_t serial_rx_active(serial_t *obj)
523523
struct serial_s *obj_s = SERIAL_S(obj);
524524
UART_HandleTypeDef *huart = &uart_handlers[obj_s->index];
525525

526-
return ((HAL_UART_GetState(huart) == HAL_UART_STATE_BUSY_RX) ? 1 : 0);
526+
return (((HAL_UART_GetState(huart) & HAL_UART_STATE_BUSY_RX) == HAL_UART_STATE_BUSY_RX) ? 1 : 0);
527527
}
528528

529529
void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart)

targets/TARGET_STM/TARGET_STM32F3/serial_device.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -467,7 +467,7 @@ uint8_t serial_tx_active(serial_t *obj)
467467
struct serial_s *obj_s = SERIAL_S(obj);
468468
UART_HandleTypeDef *huart = &uart_handlers[obj_s->index];
469469

470-
return ((HAL_UART_GetState(huart) == HAL_UART_STATE_BUSY_TX) ? 1 : 0);
470+
return (((HAL_UART_GetState(huart) & HAL_UART_STATE_BUSY_TX) == HAL_UART_STATE_BUSY_TX) ? 1 : 0);
471471
}
472472

473473
/**
@@ -483,7 +483,7 @@ uint8_t serial_rx_active(serial_t *obj)
483483
struct serial_s *obj_s = SERIAL_S(obj);
484484
UART_HandleTypeDef *huart = &uart_handlers[obj_s->index];
485485

486-
return ((HAL_UART_GetState(huart) == HAL_UART_STATE_BUSY_RX) ? 1 : 0);
486+
return (((HAL_UART_GetState(huart) & HAL_UART_STATE_BUSY_RX) == HAL_UART_STATE_BUSY_RX) ? 1 : 0);
487487
}
488488

489489
void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart)

targets/TARGET_STM/TARGET_STM32F4/serial_device.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -552,7 +552,7 @@ uint8_t serial_tx_active(serial_t *obj)
552552
struct serial_s *obj_s = SERIAL_S(obj);
553553
UART_HandleTypeDef *huart = &uart_handlers[obj_s->index];
554554

555-
return ((HAL_UART_GetState(huart) == HAL_UART_STATE_BUSY_TX) ? 1 : 0);
555+
return (((HAL_UART_GetState(huart) & HAL_UART_STATE_BUSY_TX) == HAL_UART_STATE_BUSY_TX) ? 1 : 0);
556556
}
557557

558558
/**
@@ -568,7 +568,7 @@ uint8_t serial_rx_active(serial_t *obj)
568568
struct serial_s *obj_s = SERIAL_S(obj);
569569
UART_HandleTypeDef *huart = &uart_handlers[obj_s->index];
570570

571-
return ((HAL_UART_GetState(huart) == HAL_UART_STATE_BUSY_RX) ? 1 : 0);
571+
return (((HAL_UART_GetState(huart) & HAL_UART_STATE_BUSY_RX) == HAL_UART_STATE_BUSY_RX) ? 1 : 0);
572572
}
573573

574574
void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart)

targets/TARGET_STM/TARGET_STM32F7/serial_device.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -505,7 +505,7 @@ uint8_t serial_tx_active(serial_t *obj)
505505
struct serial_s *obj_s = SERIAL_S(obj);
506506
UART_HandleTypeDef *huart = &uart_handlers[obj_s->index];
507507

508-
return ((HAL_UART_GetState(huart) == HAL_UART_STATE_BUSY_TX) ? 1 : 0);
508+
return (((HAL_UART_GetState(huart) & HAL_UART_STATE_BUSY_TX) == HAL_UART_STATE_BUSY_TX) ? 1 : 0);
509509
}
510510

511511
/**
@@ -521,7 +521,7 @@ uint8_t serial_rx_active(serial_t *obj)
521521
struct serial_s *obj_s = SERIAL_S(obj);
522522
UART_HandleTypeDef *huart = &uart_handlers[obj_s->index];
523523

524-
return ((HAL_UART_GetState(huart) == HAL_UART_STATE_BUSY_RX) ? 1 : 0);
524+
return (((HAL_UART_GetState(huart) & HAL_UART_STATE_BUSY_RX) == HAL_UART_STATE_BUSY_RX) ? 1 : 0);
525525
}
526526

527527
void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart)

targets/TARGET_STM/TARGET_STM32L0/serial_device.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -461,7 +461,7 @@ uint8_t serial_tx_active(serial_t *obj)
461461
struct serial_s *obj_s = SERIAL_S(obj);
462462
UART_HandleTypeDef *huart = &uart_handlers[obj_s->index];
463463

464-
return ((HAL_UART_GetState(huart) == HAL_UART_STATE_BUSY_TX) ? 1 : 0);
464+
return (((HAL_UART_GetState(huart) & HAL_UART_STATE_BUSY_TX) == HAL_UART_STATE_BUSY_TX) ? 1 : 0);
465465
}
466466

467467
/**
@@ -477,7 +477,7 @@ uint8_t serial_rx_active(serial_t *obj)
477477
struct serial_s *obj_s = SERIAL_S(obj);
478478
UART_HandleTypeDef *huart = &uart_handlers[obj_s->index];
479479

480-
return ((HAL_UART_GetState(huart) == HAL_UART_STATE_BUSY_RX) ? 1 : 0);
480+
return (((HAL_UART_GetState(huart) & HAL_UART_STATE_BUSY_RX) == HAL_UART_STATE_BUSY_RX) ? 1 : 0);
481481
}
482482

483483
void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart)

targets/TARGET_STM/TARGET_STM32L1/serial_device.c

100755100644
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -460,7 +460,7 @@ uint8_t serial_tx_active(serial_t *obj)
460460
struct serial_s *obj_s = SERIAL_S(obj);
461461
UART_HandleTypeDef *huart = &uart_handlers[obj_s->index];
462462

463-
return ((HAL_UART_GetState(huart) == HAL_UART_STATE_BUSY_TX) ? 1 : 0);
463+
return (((HAL_UART_GetState(huart) & HAL_UART_STATE_BUSY_TX) == HAL_UART_STATE_BUSY_TX) ? 1 : 0);
464464
}
465465

466466
/**
@@ -476,7 +476,7 @@ uint8_t serial_rx_active(serial_t *obj)
476476
struct serial_s *obj_s = SERIAL_S(obj);
477477
UART_HandleTypeDef *huart = &uart_handlers[obj_s->index];
478478

479-
return ((HAL_UART_GetState(huart) == HAL_UART_STATE_BUSY_RX) ? 1 : 0);
479+
return (((HAL_UART_GetState(huart) & HAL_UART_STATE_BUSY_RX) == HAL_UART_STATE_BUSY_RX) ? 1 : 0);
480480
}
481481

482482
void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart)

targets/TARGET_STM/TARGET_STM32L4/serial_device.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -484,7 +484,7 @@ uint8_t serial_tx_active(serial_t *obj)
484484
struct serial_s *obj_s = SERIAL_S(obj);
485485
UART_HandleTypeDef *huart = &uart_handlers[obj_s->index];
486486

487-
return ((HAL_UART_GetState(huart) == HAL_UART_STATE_BUSY_TX) ? 1 : 0);
487+
return (((HAL_UART_GetState(huart) & HAL_UART_STATE_BUSY_TX) == HAL_UART_STATE_BUSY_TX) ? 1 : 0);
488488
}
489489

490490
/**
@@ -500,7 +500,7 @@ uint8_t serial_rx_active(serial_t *obj)
500500
struct serial_s *obj_s = SERIAL_S(obj);
501501
UART_HandleTypeDef *huart = &uart_handlers[obj_s->index];
502502

503-
return ((HAL_UART_GetState(huart) == HAL_UART_STATE_BUSY_RX) ? 1 : 0);
503+
return (((HAL_UART_GetState(huart) & HAL_UART_STATE_BUSY_RX) == HAL_UART_STATE_BUSY_RX) ? 1 : 0);
504504
}
505505

506506
void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart)

0 commit comments

Comments
 (0)