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:
@@ -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
|
||||
@@ -0,0 +1,18 @@
|
||||
#ifndef BSP_UART_H
|
||||
#define BSP_UART_H
|
||||
#include "stm32f4xx_hal.h"
|
||||
#include "usart.h"
|
||||
|
||||
typedef UART_HandleTypeDef huart_t;
|
||||
#define UART1 huart6 //(3pin)与板上的标识相对应
|
||||
#define UART2 huart1 //(4pin)与板上的标识相对应
|
||||
|
||||
typedef enum __UartSendState {
|
||||
UART_SEND_FAIL = 0,
|
||||
UART_SEND_OK,
|
||||
} UartSendState_e;
|
||||
|
||||
extern UartSendState_e UartSendTxMessage(
|
||||
UART_HandleTypeDef * huart, uint8_t * pData, uint16_t Size, uint32_t Timeout);
|
||||
|
||||
#endif // BSP_UART_H
|
||||
@@ -0,0 +1,34 @@
|
||||
#ifndef BSP_USART_H
|
||||
#define BSP_USART_H
|
||||
|
||||
#include "stm32f4xx_hal.h"
|
||||
|
||||
/* 串口接收按"整帧"递交给注册回调(CAN 的按 ID 分发见 bsp_can.h) */
|
||||
typedef void (*usart_rx_callback_f)(const uint8_t * frame, uint16_t len);
|
||||
|
||||
/* ---- 接收 ----
|
||||
* 初始化在任务上下文调用一次;回调在中断上下文递交整帧,须尽量短 */
|
||||
extern void usart1_init(uint8_t * rx_buf, uint16_t dma_buf_num, usart_rx_callback_f callback);
|
||||
extern void usart3_init(uint8_t * rx_buf, uint16_t dma_buf_num, usart_rx_callback_f callback);
|
||||
extern void usart6_init(uint8_t * rx_buf, uint16_t dma_buf_num, usart_rx_callback_f callback);
|
||||
|
||||
extern int usart_rx_register(UART_HandleTypeDef * huart, usart_rx_callback_f callback);
|
||||
|
||||
/* 各 USARTx_IRQHandler 的 USER CODE 区调用(需在 HAL_UART_IRQHandler 之前) */
|
||||
extern void usart1_idle_isr(void);
|
||||
extern void usart3_idle_isr(void);
|
||||
extern void usart6_idle_isr(void);
|
||||
|
||||
/* ---- 发送 ----
|
||||
* TX DMA 启动后 data 缓冲须保持有效直至传输完成 */
|
||||
extern void usart1_tx_dma_init(void);
|
||||
extern void usart1_tx_dma_enable(uint8_t * data, uint16_t len);
|
||||
extern void usart6_tx_dma_enable(uint8_t * data, uint16_t len);
|
||||
|
||||
/* ---- 诊断(debug_task 打印) ---- */
|
||||
extern volatile uint32_t dbg_usart1_idle;
|
||||
extern volatile uint32_t dbg_usart3_idle;
|
||||
extern volatile uint32_t dbg_usart6_idle;
|
||||
extern volatile uint16_t dbg_usart3_last_len;
|
||||
extern volatile uint16_t dbg_usart6_last_len;
|
||||
#endif
|
||||
Reference in New Issue
Block a user