diff --git a/User/bsp/fdcan.c b/User/bsp/fdcan.c index 6734700..481548d 100644 --- a/User/bsp/fdcan.c +++ b/User/bsp/fdcan.c @@ -21,19 +21,19 @@ #define FDCAN1_FILTER_CONFIG_TABLE(X) \ X(0, FDCAN_STANDARD_ID, FDCAN_FILTER_MASK, 0x000 , 0x000 , 0) \ X(1, FDCAN_EXTENDED_ID, FDCAN_FILTER_MASK, 0x00000000, 0x00000000, 0) - #define FDCAN1_GLOBAL_FILTER FDCAN_REJECT, FDCAN_REJECT, FDCAN_FILTER_REMOTE, FDCAN_FILTER_REMOTE/* 全局过滤器参数(用于 HAL_FDCAN_ConfigGlobalFilter) */ + #define FDCAN1_GLOBAL_FILTER FDCAN_ACCEPT_IN_RX_FIFO0, FDCAN_ACCEPT_IN_RX_FIFO0, FDCAN_FILTER_REMOTE, FDCAN_FILTER_REMOTE #endif #ifdef FDCAN2_EN #define FDCAN2_FILTER_CONFIG_TABLE(X) \ X(0, FDCAN_STANDARD_ID, FDCAN_FILTER_MASK, 0x000 , 0x000 , 0) \ X(1, FDCAN_EXTENDED_ID, FDCAN_FILTER_MASK, 0x00000000, 0x00000000, 0) - #define FDCAN2_GLOBAL_FILTER FDCAN_ACCEPT_IN_RX_FIFO1, FDCAN_ACCEPT_IN_RX_FIFO1, FDCAN_FILTER_REMOTE, FDCAN_FILTER_REMOTE/* 全局过滤器参数(用于 HAL_FDCAN_ConfigGlobalFilter) */ + #define FDCAN2_GLOBAL_FILTER FDCAN_ACCEPT_IN_RX_FIFO1, FDCAN_ACCEPT_IN_RX_FIFO1, FDCAN_FILTER_REMOTE, FDCAN_FILTER_REMOTE #endif #ifdef FDCAN3_EN #define FDCAN3_FILTER_CONFIG_TABLE(X) \ X(0, FDCAN_STANDARD_ID, FDCAN_FILTER_MASK, 0x000 , 0x000 , 0) \ X(1, FDCAN_EXTENDED_ID, FDCAN_FILTER_MASK, 0x00000000, 0x00000000, 0) - #define FDCAN3_GLOBAL_FILTER FDCAN_REJECT, FDCAN_ACCEPT_IN_RX_FIFO1, FDCAN_FILTER_REMOTE, FDCAN_FILTER_REMOTE/* 全局过滤器参数(用于 HAL_FDCAN_ConfigGlobalFilter) */ + #define FDCAN3_GLOBAL_FILTER FDCAN_ACCEPT_IN_RX_FIFO1, FDCAN_ACCEPT_IN_RX_FIFO1, FDCAN_FILTER_REMOTE, FDCAN_FILTER_REMOTE #endif /* ====宏展开实现==== */ diff --git a/User/bsp/gpio.c b/User/bsp/gpio.c index 8ec7c27..4c2e388 100644 --- a/User/bsp/gpio.c +++ b/User/bsp/gpio.c @@ -90,6 +90,7 @@ int8_t BSP_GPIO_EnableIRQ(BSP_GPIO_t gpio) { default: return BSP_ERR; } + return BSP_OK; } int8_t BSP_GPIO_DisableIRQ(BSP_GPIO_t gpio) { @@ -107,6 +108,7 @@ int8_t BSP_GPIO_DisableIRQ(BSP_GPIO_t gpio) { default: return BSP_ERR; } + return BSP_OK; } int8_t BSP_GPIO_WritePin(BSP_GPIO_t gpio, bool value){ if (gpio >= BSP_GPIO_NUM) return BSP_ERR; diff --git a/User/device/bmi088.h b/User/device/bmi088.h index c057918..eb44e0c 100644 --- a/User/device/bmi088.h +++ b/User/device/bmi088.h @@ -1,6 +1,5 @@ #pragma once -#include #ifdef __cplusplus extern "C" { #endif @@ -31,7 +30,6 @@ typedef struct { } gyro_offset; /* 陀螺仪偏置 */ } BMI088_Cali_t; /* BMI088校准数据 */ - typedef struct { DEVICE_Header_t header; AHRS_Accl_t accl; diff --git a/User/device/device_config.yaml b/User/device/device_config.yaml index b07f920..dd505bb 100644 --- a/User/device/device_config.yaml +++ b/User/device/device_config.yaml @@ -29,6 +29,10 @@ motor_lz: motor_rm: bsp_config: {} enabled: true +mrobot: + bsp_config: + BSP_UART_MROBOT: BSP_UART_VOFA + enabled: true vofa: bsp_config: BSP_UART_VOFA: BSP_UART_VOFA diff --git a/User/device/mrobot.c b/User/device/mrobot.c index e96471a..f1a185a 100644 --- a/User/device/mrobot.c +++ b/User/device/mrobot.c @@ -120,7 +120,7 @@ static void send_string(const char *str) { if (str == NULL || *str == '\0') return; ctx.tx_complete = false; - BSP_UART_Transmit(MROBOT_UART_PORT, (uint8_t *)str, strlen(str), true); + BSP_UART_Transmit(BSP_UART_VOFA, (uint8_t *)str, strlen(str), true); while (!ctx.tx_complete) { osDelay(1); } } @@ -151,7 +151,7 @@ static void uart_rx_callback(void) { if (ch == 'q' || ch == 'Q' || ch == 27) { ctx.htop_exit = true; } - BSP_UART_Receive(MROBOT_UART_PORT, &ctx.uart_rx_char, 1, false); + BSP_UART_Receive(BSP_UART_VOFA, &ctx.uart_rx_char, 1, false); return; } @@ -160,19 +160,19 @@ static void uart_rx_callback(void) { if (ctx.cmd_index > 0) { ctx.cmd_buffer[ctx.cmd_index] = '\0'; ctx.cmd_ready = true; - BSP_UART_Transmit(MROBOT_UART_PORT, (uint8_t *)"\r\n", 2, false); + BSP_UART_Transmit(BSP_UART_VOFA, (uint8_t *)"\r\n", 2, false); } } else if (ch == 127 || ch == 8) { /* 退格键 */ if (ctx.cmd_index > 0) { ctx.cmd_index--; - BSP_UART_Transmit(MROBOT_UART_PORT, (uint8_t *)ANSI_BACKSPACE, 3, false); + BSP_UART_Transmit(BSP_UART_VOFA, (uint8_t *)ANSI_BACKSPACE, 3, false); } } else if (ch >= 32 && ch < 127 && ctx.cmd_index < sizeof(ctx.cmd_buffer) - 1) { ctx.cmd_buffer[ctx.cmd_index++] = ch; - BSP_UART_Transmit(MROBOT_UART_PORT, &ch, 1, false); + BSP_UART_Transmit(BSP_UART_VOFA, &ch, 1, false); } - BSP_UART_Receive(MROBOT_UART_PORT, &ctx.uart_rx_char, 1, false); + BSP_UART_Receive(BSP_UART_VOFA, &ctx.uart_rx_char, 1, false); } /* ========================================================================== */ @@ -500,11 +500,11 @@ void MRobot_Init(void) { } /* 注册 UART 回调 */ - BSP_UART_RegisterCallback(MROBOT_UART_PORT, BSP_UART_RX_CPLT_CB, uart_rx_callback); - BSP_UART_RegisterCallback(MROBOT_UART_PORT, BSP_UART_TX_CPLT_CB, uart_tx_callback); + BSP_UART_RegisterCallback(BSP_UART_VOFA, BSP_UART_RX_CPLT_CB, uart_rx_callback); + BSP_UART_RegisterCallback(BSP_UART_VOFA, BSP_UART_TX_CPLT_CB, uart_tx_callback); /* 启动 UART 接收 */ - BSP_UART_Receive(MROBOT_UART_PORT, &ctx.uart_rx_char, 1, false); + BSP_UART_Receive(BSP_UART_VOFA, &ctx.uart_rx_char, 1, false); /* 等待用户按下回车 */ while (ctx.uart_rx_char != '\r' && ctx.uart_rx_char != '\n') { diff --git a/User/device/mrobot.h b/User/device/mrobot.h index 74c0875..69d8b3a 100644 --- a/User/device/mrobot.h +++ b/User/device/mrobot.h @@ -143,10 +143,6 @@ extern "C" { #define MROBOT_HTOP_REFRESH_MS 200 /* htop 刷新间隔 (ms) */ #endif -#ifndef MROBOT_UART_PORT -#define MROBOT_UART_PORT BSP_UART_VOFA /* 默认 UART 端口 */ -#endif - #ifndef MROBOT_USER_NAME #define MROBOT_USER_NAME "root" /* CLI 用户名 */ #endif diff --git a/User/task/ai.c b/User/task/ai.c index 1c71886..6fd6395 100644 --- a/User/task/ai.c +++ b/User/task/ai.c @@ -23,6 +23,9 @@ Gimbal_AI_t ai_for_gimbal; /* USER STRUCT END */ /* Private function --------------------------------------------------------- */ +/* USER PRIVATE CODE BEGIN */ + +/* USER PRIVATE CODE END */ /* Exported functions ------------------------------------------------------- */ void Task_ai(void *argument) { (void)argument; /* 未使用argument,消除警告 */ diff --git a/User/task/atti_esit.c b/User/task/atti_esit.c index 66e4487..45b5a9d 100644 --- a/User/task/atti_esit.c +++ b/User/task/atti_esit.c @@ -51,27 +51,9 @@ static const KPID_Params_t imu_temp_ctrl_pid_param = { /* USER STRUCT END */ /* Private function --------------------------------------------------------- */ +/* USER PRIVATE CODE BEGIN */ -/** - * @brief IMU 设备打印回调函数 - */ -static int print_imu_callback(const void *data, char *buffer, size_t size) { - const BMI088_t *imu = (const BMI088_t *)data; - #define RAD2DEG 57.2957795131f - - return MRobot_Snprintf(buffer, size, - " Status : %s\r\n" - " Accel : X=%.3f Y=%.3f Z=%.3f (m/s^2)\r\n" - " Gyro : X=%.3f Y=%.3f Z=%.3f (rad/s)\r\n" - " Euler : R=%.2f P=%.2f Y=%.2f (deg)\r\n" - " Temp : %.1f C\r\n", - imu->header.online ? "Online" : "Offline", - imu->accl.x, imu->accl.y, imu->accl.z, - imu->gyro.x, imu->gyro.y, imu->gyro.z, - eulr_to_send.rol * RAD2DEG, eulr_to_send.pit * RAD2DEG, eulr_to_send.yaw * RAD2DEG, - imu->temp); -} - +/* USER PRIVATE CODE END */ /* Exported functions ------------------------------------------------------- */ void Task_atti_esit(void *argument) { (void)argument; /* 未使用argument,消除警告 */ diff --git a/User/task/blink.c b/User/task/blink.c index 7230e0a..6d0fd0d 100644 --- a/User/task/blink.c +++ b/User/task/blink.c @@ -20,6 +20,9 @@ static uint16_t count; /* USER STRUCT END */ /* Private function --------------------------------------------------------- */ +/* USER PRIVATE CODE BEGIN */ + +/* USER PRIVATE CODE END */ /* Exported functions ------------------------------------------------------- */ void Task_blink(void *argument) { (void)argument; /* 未使用argument,消除警告 */ diff --git a/User/task/cli.c b/User/task/cli.c index 40b5446..29ae053 100644 --- a/User/task/cli.c +++ b/User/task/cli.c @@ -18,6 +18,7 @@ /* USER STRUCT END */ /* Private function --------------------------------------------------------- */ +/* USER PRIVATE CODE BEGIN */ /** * @brief hello 命令回调 * @note 命令回调必须返回 0 (pdFALSE) 表示完成,返回非0会继续调用 @@ -27,6 +28,7 @@ static long Cli_Hello(char *buffer, size_t size, const char *cmd) { MRobot_Snprintf(buffer, size, "Ciallo~(∠・ω< )⌒★\r\n"); return 0; /* 返回0表示命令执行完成 */ } +/* USER PRIVATE CODE END */ /* Exported functions ------------------------------------------------------- */ void Task_cli(void *argument) { (void)argument; /* 未使用argument,消除警告 */ diff --git a/User/task/ctrl_chassis.c b/User/task/ctrl_chassis.c index 41a2f7b..dacf854 100644 --- a/User/task/ctrl_chassis.c +++ b/User/task/ctrl_chassis.c @@ -32,6 +32,9 @@ Chassis_IMU_t chassis_imu; /* USER STRUCT END */ /* Private function --------------------------------------------------------- */ +/* USER PRIVATE CODE BEGIN */ + +/* USER PRIVATE CODE END */ /* Exported functions ------------------------------------------------------- */ void Task_ctrl_chassis(void *argument) { (void)argument; /* 未使用argument,消除警告 */ diff --git a/User/task/ctrl_gimbal.c b/User/task/ctrl_gimbal.c index 7d3fd82..fe6649d 100644 --- a/User/task/ctrl_gimbal.c +++ b/User/task/ctrl_gimbal.c @@ -24,6 +24,9 @@ Gimbal_AI_t gimbal_ai; /* USER STRUCT END */ /* Private function --------------------------------------------------------- */ +/* USER PRIVATE CODE BEGIN */ + +/* USER PRIVATE CODE END */ /* Exported functions ------------------------------------------------------- */ void Task_ctrl_gimbal(void *argument) { (void)argument; /* 未使用argument,消除警告 */ diff --git a/User/task/ctrl_shoot.c b/User/task/ctrl_shoot.c index ded9daf..4497430 100644 --- a/User/task/ctrl_shoot.c +++ b/User/task/ctrl_shoot.c @@ -20,9 +20,13 @@ Shoot_CMD_t shoot_cmd; /* USER STRUCT END */ /* Private function --------------------------------------------------------- */ +/* USER PRIVATE CODE BEGIN */ + +/* USER PRIVATE CODE END */ /* Exported functions ------------------------------------------------------- */ void Task_ctrl_shoot(void *argument) { (void)argument; /* 未使用argument,消除警告 */ + /* 计算任务运行到指定频率需要等待的tick数 */ const uint32_t delay_tick = osKernelGetTickFreq() / CTRL_SHOOT_FREQ; diff --git a/User/task/init.c b/User/task/init.c index 546d0db..9f80448 100644 --- a/User/task/init.c +++ b/User/task/init.c @@ -40,7 +40,7 @@ void Task_Init(void *argument) { task_runtime.thread.blink = osThreadNew(Task_blink, NULL, &attr_blink); task_runtime.thread.ctrl_shoot = osThreadNew(Task_ctrl_shoot, NULL, &attr_ctrl_shoot); task_runtime.thread.ai = osThreadNew(Task_ai, NULL, &attr_ai); - // task_runtime.thread.vofa = osThreadNew(Task_vofa, NULL, &attr_vofa); + task_runtime.thread.vofa = osThreadNew(Task_vofa, NULL, &attr_vofa); task_runtime.thread.cli = osThreadNew(Task_cli, NULL, &attr_cli); // 创建消息队列 diff --git a/User/task/monitor.c b/User/task/monitor.c index 55d5bd3..94d8774 100644 --- a/User/task/monitor.c +++ b/User/task/monitor.c @@ -18,6 +18,9 @@ /* USER STRUCT END */ /* Private function --------------------------------------------------------- */ +/* USER PRIVATE CODE BEGIN */ + +/* USER PRIVATE CODE END */ /* Exported functions ------------------------------------------------------- */ void Task_monitor(void *argument) { (void)argument; /* 未使用argument,消除警告 */ diff --git a/User/task/rc.c b/User/task/rc.c index cc70232..ba22da6 100644 --- a/User/task/rc.c +++ b/User/task/rc.c @@ -25,6 +25,9 @@ Gimbal_CMD_t cmd_for_gimbal; /* USER STRUCT END */ /* Private function --------------------------------------------------------- */ +/* USER PRIVATE CODE BEGIN */ + +/* USER PRIVATE CODE END */ /* Exported functions ------------------------------------------------------- */ void Task_rc(void *argument) { (void)argument; /* 未使用argument,消除警告 */ diff --git a/User/task/user_task.c b/User/task/user_task.c index bacdc33..7ad2727 100644 --- a/User/task/user_task.c +++ b/User/task/user_task.c @@ -57,5 +57,5 @@ const osThreadAttr_t attr_vofa = { const osThreadAttr_t attr_cli = { .name = "cli", .priority = osPriorityNormal, - .stack_size = 256 * 16, + .stack_size = 1024 * 4, }; \ No newline at end of file diff --git a/User/task/vofa.c b/User/task/vofa.c index c9e01a3..8945c59 100644 --- a/User/task/vofa.c +++ b/User/task/vofa.c @@ -19,6 +19,9 @@ Chassis_t chassis_vofa; /* USER STRUCT END */ /* Private function --------------------------------------------------------- */ +/* USER PRIVATE CODE BEGIN */ + +/* USER PRIVATE CODE END */ /* Exported functions ------------------------------------------------------- */ void Task_vofa(void *argument) { (void)argument; /* 未使用argument,消除警告 */