53 lines
1.6 KiB
C
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;
|
|
}
|