|
@ -35,3 +35,48 @@ void port_do_debug_light_state(void) |
|
|
HAL_GPIO_TogglePin(DEBUG_LIGHT_PORT, DEBUG_LIGHT_PIN); |
|
|
HAL_GPIO_TogglePin(DEBUG_LIGHT_PORT, DEBUG_LIGHT_PIN); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
/*********************************************************************************************************************** |
|
|
|
|
|
* *******************************************************串口******************************************************** * |
|
|
|
|
|
***********************************************************************************************************************/ |
|
|
|
|
|
static uart_t m_uarts[] = { |
|
|
|
|
|
{&DEBUG_UART, 0} |
|
|
|
|
|
// {&ENV_SENSOR_UART485, 0}, |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
__weak void port_mock_on_uart_rx(uart_t *uart) {} |
|
|
|
|
|
|
|
|
|
|
|
static void uarts_start_receive(uart_t *uart) { HAL_UART_Receive_IT(uart->uarthandler, &uart->rxbuf, 1); } |
|
|
|
|
|
|
|
|
|
|
|
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) |
|
|
|
|
|
{ |
|
|
|
|
|
for (size_t i = 0; i < (sizeof(m_uarts) / sizeof(uart_t)); i++) |
|
|
|
|
|
{ |
|
|
|
|
|
if (m_uarts[i].uarthandler == huart) |
|
|
|
|
|
{ |
|
|
|
|
|
port_mock_on_uart_rx(&m_uarts[i]); |
|
|
|
|
|
uarts_start_receive(&m_uarts[i]); |
|
|
|
|
|
return; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart) |
|
|
|
|
|
{ |
|
|
|
|
|
for (size_t i = 0; i < (sizeof(m_uarts) / sizeof(uart_t)); i++) |
|
|
|
|
|
{ |
|
|
|
|
|
if (m_uarts[i].uarthandler == huart) |
|
|
|
|
|
{ |
|
|
|
|
|
uarts_start_receive(&m_uarts[i]); |
|
|
|
|
|
return; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// export |
|
|
|
|
|
void port_uart_start_all_uart_receive(void) |
|
|
|
|
|
{ |
|
|
|
|
|
for (size_t i = 0; i < (sizeof(m_uarts) / sizeof(uart_t)); i++) |
|
|
|
|
|
{ |
|
|
|
|
|
uarts_start_receive(&m_uarts[i]); |
|
|
|
|
|
} |
|
|
|
|
|
} |