20240909-DXSPX-emb/RTCGet(可以跑的版本)/Src/Usr/Driver/usr_drv_uart.c
2024-09-11 17:03:46 +08:00

53 lines
1.6 KiB
C

#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;
}