#include "usr_drv_uart.h" #include "usr_bsp_uart.h" #include "usr_bsp_gpio.h" static uint8_t g_usr_drv_uart_printf_id = 0; /* RS485初始化 */ void usr_drv_rs485_init(uint8_t uart_id, uint32_t bandrate, uint32_t ui32Port, uint8_t ui8Pins) { if (uart_id == USR_UART1) { usr_bsp_gpio_init(GPIO_PORTK_BASE, GPIO_PIN_4, GPIO_DIR_MODE_OUT, GPIO_PIN_TYPE_STD); usr_bsp_gpio_set_output(GPIO_PORTK_BASE, GPIO_PIN_4, USR_GPIO_OUT_LOW); } usr_bsp_uart_init(uart_id, bandrate, USR_UART_DATABIT_8, USR_UART_STOPBIT_ONE, USR_UART_CHECKBIT_NONE); usr_bsp_gpio_init(ui32Port, ui8Pins, GPIO_DIR_MODE_OUT, GPIO_PIN_TYPE_STD); usr_bsp_gpio_set_output(ui32Port, ui8Pins, USR_GPIO_OUT_LOW); } /* RS485发送数据 */ void usr_drv_rs485_write(uint8_t uart_id, uint8_t *buf, uint32_t buflen, uint32_t ui32Port, uint8_t ui8Pins) { usr_bsp_gpio_set_output(ui32Port, ui8Pins, USR_GPIO_OUT_HIGH); usr_bsp_uart_send(uart_id, buf, buflen); usr_bsp_gpio_set_output(ui32Port, ui8Pins, USR_GPIO_OUT_LOW); } /* RS485接收数据 */ uint32_t usr_drv_rs485_read(uint8_t uart_id, uint8_t *info, uint32_t info_len) { return usr_bsp_uart_get_info(uart_id, info, info_len); } /* 调试串口 */ void usr_drv_uart_printf_init(uint8_t uart_id, uint32_t bandrate) { g_usr_drv_uart_printf_id = uart_id; usr_bsp_uart_init(g_usr_drv_uart_printf_id, bandrate, USR_UART_DATABIT_8, USR_UART_STOPBIT_ONE, USR_UART_CHECKBIT_NONE); } int8_t usr_drv_printf(uint8_t *data, uint32_t data_len) { int rt; if (data_len == 0) { return -1; } rt = usr_bsp_uart_send(g_usr_drv_uart_printf_id, data, data_len); return rt; }