You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
#include "zport.h"
#include <stdint.h>
#include <stdio.h>
#include "zboard.h"
uint32_t sys_haspassedms(uint32_t ticket) { uint32_t nowticket = HAL_GetTick(); if (nowticket >= ticket) { return nowticket - ticket; } return UINT32_MAX - ticket + nowticket; }
///**********************************************************************************************************************
// * ===================================================printf重定向=================================================== *
// **********************************************************************************************************************/
int fputc(int ch, FILE *stream) { uint8_t c = ch; HAL_UART_Transmit(&DEBUG_UART, &c, 1, 100); return ch; } ///***********************************************************************************************************************
// * ====================================================调试指示灯===================================================== *
// ***********************************************************************************************************************/
void port_do_debug_light_state(void) { static uint32_t lastprocess = 0; if (sys_haspassedms(lastprocess) > 300) { lastprocess = HAL_GetTick(); 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]); } }
|