chore: 导入 Simba-OmniInfantry 基线(云台/底盘双工程)

- 云台(ROBOT_TYPE_GIMBAL)与底盘(ROBOT_TYPE_CHASSIS)完整固件源码
- 新增根级 .gitignore,排除 Keil MDK-ARM 构建产物(.o/.d/.crf/.axf/.lnp/.map/.htm/.sct/.dep/.iex/.lst 等)
  与 *.uvguix.* / DebugConfig/(与机器绑定的 UI 布局)
- core.autocrlf=false,避免固件源码在检出时被改动换行符
This commit is contained in:
2026-09-12 10:28:21 +08:00
commit a4da5ad17c
517 changed files with 503795 additions and 0 deletions
+33
View File
@@ -0,0 +1,33 @@
#ifndef BSP_CAN_H
#define BSP_CAN_H
#include "stm32f4xx_hal.h"
// clang-format off
#define BOARD_DATA_ANY ((uint16_t)0x500)
#define BOARD_DATA_UINT16 ((uint16_t)0x600)
// clang-format on
typedef CAN_HandleTypeDef hcan_t;
typedef struct __CanCtrlData
{
hcan_t * hcan;
CAN_TxHeaderTypeDef tx_header;
uint8_t tx_data[8];
} CanCtrlData_s;
/* CAN 接收回调:在 CAN RX0 中断上下文中执行,必须尽量短 */
typedef void (*can_rx_callback_f)(uint32_t std_id, const uint8_t rx_data[8], uint32_t dlc);
extern hcan_t hcan1;
extern hcan_t hcan2;
/* 初始化过滤器并启动两路 CAN,同时使能 CAN1_RX0/CAN2_RX0 NVIC(ioc 未开 CAN2 中断,由代码补齐)
* 必须在 osKernelStart 之后的任务上下文中调用一次 */
extern void can_start(void);
/* 注册按 (hcan, 标准ID) 分发的接收回调,返回 0-成功,-1-表满 */
extern int can_rx_register(hcan_t * hcan, uint32_t std_id, can_rx_callback_f callback);
extern void CAN_SendTxMessage(CanCtrlData_s * can_ctrl_data);
#endif