@@ -361,12 +361,7 @@ size_t uart_debug_write(uint8_t *data, uint32_t size)
361361 */
362362uint8_t serial_rx_active (serial_t * obj )
363363{
364- if (obj == NULL ) {
365- return 1 ;
366- }
367-
368- UART_HandleTypeDef * huart = uart_handlers [obj -> index ];
369- return ((HAL_UART_GetState (huart ) == HAL_UART_STATE_BUSY_RX ) ? 1 : 0 );
364+ return ((obj == NULL ) ? 1 : (HAL_UART_GetState (uart_handlers [obj -> index ]) == HAL_UART_STATE_BUSY_RX ));
370365}
371366
372367/**
@@ -377,12 +372,7 @@ uint8_t serial_rx_active(serial_t *obj)
377372 */
378373uint8_t serial_tx_active (serial_t * obj )
379374{
380- if (obj == NULL ) {
381- return 1 ;
382- }
383-
384- UART_HandleTypeDef * huart = uart_handlers [obj -> index ];
385- return ((HAL_UART_GetState (huart ) == HAL_UART_STATE_BUSY_TX ) ? 1 : 0 );
375+ return ((obj == NULL ) ? 1 : (HAL_UART_GetState (uart_handlers [obj -> index ]) == HAL_UART_STATE_BUSY_TX ));
386376}
387377
388378/**
@@ -467,19 +457,20 @@ void uart_attach_tx_callback(serial_t *obj, int (*callback)(serial_t*))
467457 * @param UartHandle pointer on the uart reference
468458 * @retval index
469459 */
470- int uart_index (UART_HandleTypeDef * huart )
460+ uint8_t uart_index (UART_HandleTypeDef * huart )
471461{
462+ uint8_t i = 0 ;
472463 if (huart == NULL ) {
473- return -1 ;
464+ return UART_NUM ;
474465 }
475466
476- for (uint8_t i = 0 ; i < UART_NUM ; i ++ ) {
467+ for (i = 0 ; i < UART_NUM ; i ++ ) {
477468 if (huart == uart_handlers [i ]) {
478- return i ;
469+ break ;
479470 }
480471 }
481472
482- return -1 ;
473+ return i ;
483474}
484475
485476/**
@@ -491,7 +482,7 @@ void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
491482{
492483 uint8_t index = uart_index (huart );
493484
494- if (index > 0 ) {
485+ if (index < UART_NUM ) {
495486 rx_callback [index ](rx_callback_obj [index ]);
496487 }
497488}
@@ -505,7 +496,7 @@ void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart) {
505496 uint8_t index = uart_index (huart );
506497 serial_t * obj = tx_callback_obj [index ];
507498
508- if (index > 0 ) {
499+ if (index < UART_NUM ) {
509500 if (tx_callback [index ](obj ) != -1 ) {
510501 if (HAL_UART_Transmit_IT (uart_handlers [obj -> index ], & obj -> tx_buff [obj -> tx_tail ], 1 ) != HAL_OK ) {
511502 return ;
0 commit comments