在逗猫棒的基础上实现蓝牙转USB功能,目前功能已经实现,还需裁剪掉之前逗猫棒的业务程序

This commit is contained in:
2026-07-24 11:41:08 +08:00
commit b3f06697a6
1569 changed files with 515355 additions and 0 deletions
+69
View File
@@ -0,0 +1,69 @@
#include "system/includes.h"
#include "asm/uart_dev.h"
#include "system/event.h"
#if 1
static uart_bus_t *uart_bus0;
static u8 uart_cbuf0[256] __attribute__((aligned(4)));
static u8 uart_rxbuf0[256] __attribute__((aligned(4)));
extern void usr_uart_data_recieve(u8* data,u16 len);
void usr_uart_send_cmd(u8* data,u16 len)
{
//if(uart_bus0)uart_bus0->write(data,len);
}
static void uart_u_task0(void *arg)
{
int ret;
u32 uart_rxcnt0 = 0;
printf("uart_u_task start\n");
while (1) {
//uart_bus0->read()在尚未收到串口数据时会pend信号量,挂起task,直到UART_RX_PND或UART_RX_OT_PND中断发生,post信号量,唤醒task
uart_rxcnt0 = uart_bus0->read(uart_rxbuf0, sizeof(uart_rxbuf0), 0);
if (uart_rxcnt0)
{
//printf("uart_rx = ");
//printf_buf(uart_rxbuf,uart_rxcnt0);
//usr_uart_send_cmd(uart_rxbuf,uart_rxcnt0);
usr_uart_data_recieve(uart_rxbuf0,uart_rxcnt0);
}
}
}
static void uart_isr_hook0(void *arg, u32 status)
{
//当CONFIG_UARTx_ENABLE_TX_DMAx = 0, 1)为1时,不要在中断里面调用ubus->write(),因为中断不能pend信号量
if (status == UT_RX) {
// printf("uart_rx_isr\n");
}
if (status == UT_RX_OT) {
// printf("uart_rx_ot_isr\n");
}
}
void uart_dev_main_init0()
{
struct uart_platform_data_t u_arg = {0};
u_arg.tx_pin = IO_PORTB_06;
u_arg.rx_pin = IO_PORTB_07;
u_arg.rx_cbuf = uart_cbuf0;
u_arg.rx_cbuf_size = 256;
u_arg.frame_length = 256;
u_arg.rx_timeout = 100;
u_arg.isr_cbfun = uart_isr_hook0;
u_arg.baud = 9600;
u_arg.is_9bit = 0;
uart_bus0 = uart_dev_open(&u_arg);
if (uart_bus0 != NULL)
{
printf("uart_dev_open2() success\n");
os_task_create(uart_u_task0, (void *)uart_bus0, 31, 2048, 0, "uart_cmd_task");
}
// usr_uart_send_cmd(' ',1);
}
#endif