Files

67 lines
1.4 KiB
C

/******************************************************************************
* @file jb_port.c
* @brief 协议硬件对接层:串口/定时器 ↔ 协议 API
* @author cyWu <1917507415@qq.com>
* @date 2026.08.10
* @version V1.0.0
* @history
* - V1.0.0, 2026.08.10, cyWu, 首次发布
******************************************************************************/
#include "jb_port.h"
#include "jb_uart.h"
#include "jb_timer.h"
#include "jb_protocol.h"
#include "main.h"
/**
* @brief UART RX 单字节 → 协议环形缓冲(不放在 jb_product 中)
* @param byte 收到的字节
*/
static void jb_port_on_uart_rx(uint8_t byte)
{
jbPutData(&byte, 1U);
}
/**
* @brief 初始化协议串口
*/
void jb_port_uart_init(void)
{
jb_uart_set_rx_callback(jb_port_on_uart_rx);
if (jb_uart_init() != JB_UART_OK)
{
Error_Handler((uint8_t *)__FILE__, __LINE__);
}
}
/**
* @brief 协议串口发送
* @param buf 数据
* @param len 长度
* @return 成功返回 len,失败 -1
*/
int32_t jb_port_uart_write(uint8_t *buf, uint32_t len)
{
return jb_uart_write(buf, len);
}
/**
* @brief 主循环串口处理
*/
void jb_port_uart_run(void)
{
jb_uart_run();
}
/**
* @brief 初始化 1ms 定时器硬件
*/
void jb_port_timer_init(void)
{
if (jb_timer_init() != JB_TIMER_OK)
{
Error_Handler((uint8_t *)__FILE__, __LINE__);
}
}