# Mini_Core 核心板 STM32F105RBT6


适配扩展版 -- Sick 中心板

---

![图片](img/IMG_9086.JPG)

## 硬件说明

### 核心板
- **型号**: STM32F105RBT6
- **扩展功能**: Sick 数据处理中心板。

![核心板图片](img/IMG_9083.JPG)

### 扩展版
- **CAN1**: 接收 Sick 数据。
- **CAN2**: 发送 Sick 数据。
- **USART3**: PC通信。
- **USART2**: 串口通信。

![核心板图片](img/IMG_9084.JPG)

## 功能概述

### CAN 通信
- **CAN1**: 接收 4 个 Sick 数据帧（ID: `0x101`, `0x102`, `0x103`, `0x104`）。
- **CAN2**: 发送格式为 `Sick1 Sick2 Sick3 Sick4` 的数据帧。
  - **ID**: `0x110`
  - **帧类型**: 标准帧
  - **数据长度**: DLC 8 位
  - **频率**: 100Hz

### UART 通信
- **Micro USB**: 数据发送频率为 100Hz。

### LED 指示
- 绿色 LED 闪烁，指示系统运行状态。

---

## 当前进展

### 已实现
- CAN1 接收 Sick 数据。
- CAN2 发送 Sick 数据。
- 串口通信功能正常运行。

### 待完成
1. **屏幕适配**:
   - 当前屏幕尺寸为 1.14 英寸，需适配至 0.96 英寸。
2. **按键功能**:
   - 按键功能尚未实现。
3. **LVGL 绘制优化**:
   - LVGL 的绘制功能未使用 DMA。
4. **串口 DMA**:
   - USART3 的 DMA 功能未启用（启用后系统异常，需要进一步调试）。

---

## 系统架构

### 数据流
1. **CAN1 接收**:
   - 接收 Sick 数据帧并存储到消息队列。
2. **CAN2 发送**:
   - 从消息队列读取 Sick 数据并发送。
3. **UART 发送**:
   - 通过 USART3 以 100Hz 频率发送 Sick 数据。

### 任务分配
- **Task_Can**:
  - 初始化 CAN。
  - 接收 CAN 数据并存储到消息队列。
  - 定时发送 Sick 数据。
- **Task_PC**:
  - 从消息队列读取 Sick 数据。
  - 通过 USART3 发送数据。
- **Task_Disp**:
  - 初始化屏幕和 LVGL。
  - 显示 Sick 数据。

---

## 硬件说明

### 核心板
- **型号**: STM32F105RBT6
- **扩展功能**: Sick 数据处理中心板。

### 通信接口
- **CAN1**: 接收 Sick 数据。
- **CAN2**: 发送 Sick 数据。
- **USART3**: 串口通信。

---

## 使用说明

1. **编译与烧录**:
   - 使用 Keil 或 STM32CubeIDE 编译项目。
   - 通过 ST-Link 烧录固件到核心板。

2. **运行环境**:
   - 供电方式: Micro USB 或外部电源。（3.3v无法使用can）
   - 数据通信: 通过 CAN 和 UART 接口。

3. **调试**:
   - 使用串口调试工具查看 Sick 数据发送情况。
   - 使用 CAN 分析仪监控 CAN 数据帧。

---

## 贡献者
- **作者**: Robofish
- **项目名称**: Mini_Core
- **版本**: v1.0