Files
2026-04-23 13:49:53 +08:00

68 lines
1.1 KiB
C

#include "dev_rs485.h"
#include "hdl_led.h"
static void rs485_rxpin_init(void)
{
LL_PERIPH_WE(LL_PERIPH_GPIO);
stc_gpio_init_t stcGpioInit={0};
GPIO_StructInit(&stcGpioInit);
stcGpioInit.u16PinDir = PIN_DIR_OUT;
stcGpioInit.u16PinDrv = PIN_HIGH_DRV;
stcGpioInit.u16PullUp = PIN_PU_ON;
stcGpioInit.u16PinAttr = PIN_ATTR_DIGITAL;
(void)GPIO_Init(RS485_CTRL_PORT, RS485_CTRL_PIN, &stcGpioInit);
LL_PERIPH_WP(LL_PERIPH_GPIO);
}
static void rs485_rxpin_enable(void)
{
GPIO_ResetPins(RS485_CTRL_PORT,RS485_CTRL_PIN);
}
static void rs485_rxpin_disable(void)
{
GPIO_SetPins(RS485_CTRL_PORT,RS485_CTRL_PIN);
}
int dev_rs485_init(void)
{
hdl_com_uart_init();
rs485_rxpin_init();
rs485_rxpin_enable();
return 0;
}
int dev_rs485_rx_register(dev_rs485_cb_t fnCallback)
{
hdl_com_uart_rx_register((com_rx_callback)fnCallback);
return 0;
}
void dev_rs485_send(uint8_t* buf, int len)
{
rs485_rxpin_disable();
hdl_com_uart_send(buf, len);
rs485_rxpin_enable();
}
int dev_rs485_deinit(void)
{
return 0;
}