diff --git a/.DS_Store b/.DS_Store index 65b4526..9fc6441 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/app/code_page/bsp_interface.py b/app/code_page/bsp_interface.py index 5ba4617..2b44b5f 100644 --- a/app/code_page/bsp_interface.py +++ b/app/code_page/bsp_interface.py @@ -61,9 +61,17 @@ class BspSimplePeripheral(QWidget): return "skipped" # 返回特殊值表示跳过 return "not_needed" # 返回特殊值表示不需要生成 - template_dir = CodeGenerator.get_template_dir() + # 使用外设名称作为子文件夹名(小写) + periph_folder = self.peripheral_name.lower() + template_base_dir = CodeGenerator.get_assets_dir("User_code/bsp") + for key, filename in self.template_names.items(): - template_path = os.path.join(template_dir, filename) + # 先尝试从子文件夹加载 + template_path = os.path.join(template_base_dir, periph_folder, filename) + if not os.path.exists(template_path): + # 如果子文件夹不存在,尝试从根目录加载(向后兼容) + template_path = os.path.join(template_base_dir, filename) + template_content = CodeGenerator.load_template(template_path) if not template_content: return False @@ -206,7 +214,15 @@ class BspPeripheralBase(QWidget): return True def _generate_header_file(self, configs, template_dir): - template_path = os.path.join(template_dir, self.template_names['header']) + # 构建模板路径,优先从子文件夹读取 + periph_folder = self.peripheral_name.lower() + template_base_dir = CodeGenerator.get_assets_dir("User_code/bsp") + template_path = os.path.join(template_base_dir, periph_folder, self.template_names['header']) + + if not os.path.exists(template_path): + # 向后兼容:尝试从根目录读取 + template_path = os.path.join(template_base_dir, self.template_names['header']) + template_content = CodeGenerator.load_template(template_path) if not template_content: return False diff --git a/app/code_page/component_interface.py b/app/code_page/component_interface.py index 5ced305..161f8a4 100644 --- a/app/code_page/component_interface.py +++ b/app/code_page/component_interface.py @@ -107,9 +107,17 @@ class ComponentSimple(QWidget): return "skipped" # 返回特殊值表示跳过 return "not_needed" # 返回特殊值表示不需要生成 - template_dir = self._get_component_template_dir() + # 使用组件名称作为子文件夹名(小写) + comp_folder = self.component_name.lower() + template_base_dir = CodeGenerator.get_assets_dir("User_code/component") + for key, filename in self.template_names.items(): - template_path = os.path.join(template_dir, filename) + # 先尝试从子文件夹加载 + template_path = os.path.join(template_base_dir, comp_folder, filename) + if not os.path.exists(template_path): + # 如果子文件夹不存在,尝试从根目录加载(向后兼容) + template_path = os.path.join(template_base_dir, filename) + template_content = CodeGenerator.load_template(template_path) if not template_content: print(f"模板文件不存在或为空: {template_path}") diff --git a/app/code_page/device_interface.py b/app/code_page/device_interface.py index 287d52e..af2f8b5 100644 --- a/app/code_page/device_interface.py +++ b/app/code_page/device_interface.py @@ -240,12 +240,18 @@ class DeviceSimple(QWidget): # 获取BSP配置 bsp_config = self.get_bsp_config() - # 复制并修改文件 - template_dir = self._get_device_template_dir() + # 使用设备名称作为子文件夹名(小写) + device_folder = self.device_name.lower() + template_base_dir = CodeGenerator.get_assets_dir("User_code/device") files = self.device_config.get('files', {}) for file_type, filename in files.items(): - src_path = os.path.join(template_dir, filename) + # 先尝试从子文件夹加载 + src_path = os.path.join(template_base_dir, device_folder, filename) + if not os.path.exists(src_path): + # 如果子文件夹不存在,尝试从根目录加载(向后兼容) + src_path = os.path.join(template_base_dir, filename) + dst_path = os.path.join(self.project_path, f"User/device/{filename}") if os.path.exists(src_path): diff --git a/assets/User_code/STRUCTURE.md b/assets/User_code/STRUCTURE.md new file mode 100644 index 0000000..6a79ab6 --- /dev/null +++ b/assets/User_code/STRUCTURE.md @@ -0,0 +1,113 @@ +# User_code 目录结构说明 + +## 新的文件夹结构 + +所有外设、组件和设备的文件现在都存放在独立的子文件夹中,便于管理和维护。 + +### BSP (板级支持包) +``` +bsp/ +├── bsp.h # BSP 总头文件 +├── describe.csv # 外设描述文件 +├── .gitkeep +├── can/ +│ ├── can.c +│ └── can.h +├── fdcan/ +│ ├── fdcan.c +│ └── fdcan.h +├── uart/ +│ ├── uart.c +│ └── uart.h +├── spi/ +│ ├── spi.c +│ └── spi.h +├── i2c/ +│ ├── i2c.c +│ └── i2c.h +├── gpio/ +│ ├── gpio.c +│ └── gpio.h +├── pwm/ +│ ├── pwm.c +│ └── pwm.h +├── time/ +│ ├── time.c +│ └── time.h +├── dwt/ +│ ├── dwt.c +│ └── dwt.h +└── mm/ + ├── mm.c + └── mm.h +``` + +### Component (组件) +``` +component/ +├── describe.csv # 组件描述文件 +├── dependencies.csv # 组件依赖关系 +├── .gitkeep +├── ahrs/ +├── capacity/ +├── cmd/ +├── crc16/ +├── crc8/ +├── error_detect/ +├── filter/ +├── freertos_cli/ +├── limiter/ +├── mixer/ +├── pid/ +├── ui/ +└── user_math/ +``` + +### Device (设备) +``` +device/ +├── device.h # Device 总头文件 +├── config.yaml # 设备配置文件 +├── .gitkeep +├── bmi088/ +├── buzzer/ +├── dm_imu/ +├── dr16/ +├── ist8310/ +├── led/ +├── motor/ +├── motor_dm/ +├── motor_lk/ +├── motor_lz/ +├── motor_odrive/ +├── motor_rm/ +├── motor_vesc/ +├── oid/ +├── ops9/ +├── rc_can/ +├── servo/ +├── vofa/ +├── ws2812/ +└── lcd_driver/ # LCD 驱动(原有结构) +``` + +## 代码生成逻辑 + +代码生成器会: +1. 首先尝试从子文件夹加载模板(如 `bsp/can/can.c`) +2. 如果子文件夹不存在,回退到根目录加载(向后兼容) +3. 生成时将文件展开到项目的扁平目录结构中(如 `User/bsp/can.c`) + +## 优势 + +✅ **更好的组织**: 每个外设/组件的文件都在独立文件夹中 +✅ **便于管理**: 添加、删除、修改模板更加方便 +✅ **向后兼容**: 现有的扁平结构仍然可以正常工作 +✅ **清晰的结构**: 一目了然地看到所有可用的外设/组件 + +## 迁移说明 + +如果你添加新的外设/组件/设备: +1. 在对应目录下创建新的子文件夹(小写命名) +2. 将 .c 和 .h 文件放入子文件夹 +3. 代码生成器会自动识别并使用 diff --git a/assets/User_code/bsp/can.c b/assets/User_code/bsp/can/can.c similarity index 100% rename from assets/User_code/bsp/can.c rename to assets/User_code/bsp/can/can.c diff --git a/assets/User_code/bsp/can.h b/assets/User_code/bsp/can/can.h similarity index 100% rename from assets/User_code/bsp/can.h rename to assets/User_code/bsp/can/can.h diff --git a/assets/User_code/bsp/dwt.c b/assets/User_code/bsp/dwt/dwt.c similarity index 100% rename from assets/User_code/bsp/dwt.c rename to assets/User_code/bsp/dwt/dwt.c diff --git a/assets/User_code/bsp/dwt.h b/assets/User_code/bsp/dwt/dwt.h similarity index 100% rename from assets/User_code/bsp/dwt.h rename to assets/User_code/bsp/dwt/dwt.h diff --git a/assets/User_code/bsp/fdcan.c b/assets/User_code/bsp/fdcan/fdcan.c similarity index 100% rename from assets/User_code/bsp/fdcan.c rename to assets/User_code/bsp/fdcan/fdcan.c diff --git a/assets/User_code/bsp/fdcan.h b/assets/User_code/bsp/fdcan/fdcan.h similarity index 100% rename from assets/User_code/bsp/fdcan.h rename to assets/User_code/bsp/fdcan/fdcan.h diff --git a/assets/User_code/bsp/gpio.c b/assets/User_code/bsp/gpio/gpio.c similarity index 100% rename from assets/User_code/bsp/gpio.c rename to assets/User_code/bsp/gpio/gpio.c diff --git a/assets/User_code/bsp/gpio.h b/assets/User_code/bsp/gpio/gpio.h similarity index 100% rename from assets/User_code/bsp/gpio.h rename to assets/User_code/bsp/gpio/gpio.h diff --git a/assets/User_code/bsp/i2c.c b/assets/User_code/bsp/i2c/i2c.c similarity index 100% rename from assets/User_code/bsp/i2c.c rename to assets/User_code/bsp/i2c/i2c.c diff --git a/assets/User_code/bsp/i2c.h b/assets/User_code/bsp/i2c/i2c.h similarity index 100% rename from assets/User_code/bsp/i2c.h rename to assets/User_code/bsp/i2c/i2c.h diff --git a/assets/User_code/bsp/mm.c b/assets/User_code/bsp/mm/mm.c similarity index 100% rename from assets/User_code/bsp/mm.c rename to assets/User_code/bsp/mm/mm.c diff --git a/assets/User_code/bsp/mm.h b/assets/User_code/bsp/mm/mm.h similarity index 100% rename from assets/User_code/bsp/mm.h rename to assets/User_code/bsp/mm/mm.h diff --git a/assets/User_code/bsp/pwm.c b/assets/User_code/bsp/pwm/pwm.c similarity index 100% rename from assets/User_code/bsp/pwm.c rename to assets/User_code/bsp/pwm/pwm.c diff --git a/assets/User_code/bsp/pwm.h b/assets/User_code/bsp/pwm/pwm.h similarity index 100% rename from assets/User_code/bsp/pwm.h rename to assets/User_code/bsp/pwm/pwm.h diff --git a/assets/User_code/bsp/spi.c b/assets/User_code/bsp/spi/spi.c similarity index 100% rename from assets/User_code/bsp/spi.c rename to assets/User_code/bsp/spi/spi.c diff --git a/assets/User_code/bsp/spi.h b/assets/User_code/bsp/spi/spi.h similarity index 100% rename from assets/User_code/bsp/spi.h rename to assets/User_code/bsp/spi/spi.h diff --git a/assets/User_code/bsp/time.c b/assets/User_code/bsp/time/time.c similarity index 100% rename from assets/User_code/bsp/time.c rename to assets/User_code/bsp/time/time.c diff --git a/assets/User_code/bsp/time.h b/assets/User_code/bsp/time/time.h similarity index 100% rename from assets/User_code/bsp/time.h rename to assets/User_code/bsp/time/time.h diff --git a/assets/User_code/bsp/uart.c b/assets/User_code/bsp/uart/uart.c similarity index 100% rename from assets/User_code/bsp/uart.c rename to assets/User_code/bsp/uart/uart.c diff --git a/assets/User_code/bsp/uart.h b/assets/User_code/bsp/uart/uart.h similarity index 100% rename from assets/User_code/bsp/uart.h rename to assets/User_code/bsp/uart/uart.h diff --git a/assets/User_code/component/ahrs.c b/assets/User_code/component/ahrs/ahrs.c similarity index 100% rename from assets/User_code/component/ahrs.c rename to assets/User_code/component/ahrs/ahrs.c diff --git a/assets/User_code/component/ahrs.h b/assets/User_code/component/ahrs/ahrs.h similarity index 100% rename from assets/User_code/component/ahrs.h rename to assets/User_code/component/ahrs/ahrs.h diff --git a/assets/User_code/component/capacity.c b/assets/User_code/component/capacity/capacity.c similarity index 100% rename from assets/User_code/component/capacity.c rename to assets/User_code/component/capacity/capacity.c diff --git a/assets/User_code/component/capacity.h b/assets/User_code/component/capacity/capacity.h similarity index 100% rename from assets/User_code/component/capacity.h rename to assets/User_code/component/capacity/capacity.h diff --git a/assets/User_code/component/cmd.c b/assets/User_code/component/cmd/cmd.c similarity index 100% rename from assets/User_code/component/cmd.c rename to assets/User_code/component/cmd/cmd.c diff --git a/assets/User_code/component/cmd.h b/assets/User_code/component/cmd/cmd.h similarity index 100% rename from assets/User_code/component/cmd.h rename to assets/User_code/component/cmd/cmd.h diff --git a/assets/User_code/component/crc16.c b/assets/User_code/component/crc16/crc16.c similarity index 100% rename from assets/User_code/component/crc16.c rename to assets/User_code/component/crc16/crc16.c diff --git a/assets/User_code/component/crc16.h b/assets/User_code/component/crc16/crc16.h similarity index 100% rename from assets/User_code/component/crc16.h rename to assets/User_code/component/crc16/crc16.h diff --git a/assets/User_code/component/crc8.c b/assets/User_code/component/crc8/crc8.c similarity index 100% rename from assets/User_code/component/crc8.c rename to assets/User_code/component/crc8/crc8.c diff --git a/assets/User_code/component/crc8.h b/assets/User_code/component/crc8/crc8.h similarity index 100% rename from assets/User_code/component/crc8.h rename to assets/User_code/component/crc8/crc8.h diff --git a/assets/User_code/component/error_detect.c b/assets/User_code/component/error_detect/error_detect.c similarity index 100% rename from assets/User_code/component/error_detect.c rename to assets/User_code/component/error_detect/error_detect.c diff --git a/assets/User_code/component/error_detect.h b/assets/User_code/component/error_detect/error_detect.h similarity index 100% rename from assets/User_code/component/error_detect.h rename to assets/User_code/component/error_detect/error_detect.h diff --git a/assets/User_code/component/filter.c b/assets/User_code/component/filter/filter.c similarity index 100% rename from assets/User_code/component/filter.c rename to assets/User_code/component/filter/filter.c diff --git a/assets/User_code/component/filter.h b/assets/User_code/component/filter/filter.h similarity index 100% rename from assets/User_code/component/filter.h rename to assets/User_code/component/filter/filter.h diff --git a/assets/User_code/component/FreeRTOS_CLI.c b/assets/User_code/component/freertos_cli/FreeRTOS_CLI.c similarity index 100% rename from assets/User_code/component/FreeRTOS_CLI.c rename to assets/User_code/component/freertos_cli/FreeRTOS_CLI.c diff --git a/assets/User_code/component/FreeRTOS_CLI.h b/assets/User_code/component/freertos_cli/FreeRTOS_CLI.h similarity index 100% rename from assets/User_code/component/FreeRTOS_CLI.h rename to assets/User_code/component/freertos_cli/FreeRTOS_CLI.h diff --git a/assets/User_code/component/limiter.c b/assets/User_code/component/limiter/limiter.c similarity index 100% rename from assets/User_code/component/limiter.c rename to assets/User_code/component/limiter/limiter.c diff --git a/assets/User_code/component/limiter.h b/assets/User_code/component/limiter/limiter.h similarity index 100% rename from assets/User_code/component/limiter.h rename to assets/User_code/component/limiter/limiter.h diff --git a/assets/User_code/component/mixer.c b/assets/User_code/component/mixer/mixer.c similarity index 100% rename from assets/User_code/component/mixer.c rename to assets/User_code/component/mixer/mixer.c diff --git a/assets/User_code/component/mixer.h b/assets/User_code/component/mixer/mixer.h similarity index 100% rename from assets/User_code/component/mixer.h rename to assets/User_code/component/mixer/mixer.h diff --git a/assets/User_code/component/pid.c b/assets/User_code/component/pid/pid.c similarity index 100% rename from assets/User_code/component/pid.c rename to assets/User_code/component/pid/pid.c diff --git a/assets/User_code/component/pid.h b/assets/User_code/component/pid/pid.h similarity index 100% rename from assets/User_code/component/pid.h rename to assets/User_code/component/pid/pid.h diff --git a/assets/User_code/component/ui.c b/assets/User_code/component/ui/ui.c similarity index 100% rename from assets/User_code/component/ui.c rename to assets/User_code/component/ui/ui.c diff --git a/assets/User_code/component/ui.h b/assets/User_code/component/ui/ui.h similarity index 100% rename from assets/User_code/component/ui.h rename to assets/User_code/component/ui/ui.h diff --git a/assets/User_code/component/user_math.c b/assets/User_code/component/user_math/user_math.c similarity index 100% rename from assets/User_code/component/user_math.c rename to assets/User_code/component/user_math/user_math.c diff --git a/assets/User_code/component/user_math.h b/assets/User_code/component/user_math/user_math.h similarity index 100% rename from assets/User_code/component/user_math.h rename to assets/User_code/component/user_math/user_math.h diff --git a/assets/User_code/device/bmi088.c b/assets/User_code/device/bmi088/bmi088.c similarity index 100% rename from assets/User_code/device/bmi088.c rename to assets/User_code/device/bmi088/bmi088.c diff --git a/assets/User_code/device/bmi088.h b/assets/User_code/device/bmi088/bmi088.h similarity index 100% rename from assets/User_code/device/bmi088.h rename to assets/User_code/device/bmi088/bmi088.h diff --git a/assets/User_code/device/buzzer.c b/assets/User_code/device/buzzer/buzzer.c similarity index 100% rename from assets/User_code/device/buzzer.c rename to assets/User_code/device/buzzer/buzzer.c diff --git a/assets/User_code/device/buzzer.h b/assets/User_code/device/buzzer/buzzer.h similarity index 100% rename from assets/User_code/device/buzzer.h rename to assets/User_code/device/buzzer/buzzer.h diff --git a/assets/User_code/device/dm_imu.c b/assets/User_code/device/dm_imu/dm_imu.c similarity index 100% rename from assets/User_code/device/dm_imu.c rename to assets/User_code/device/dm_imu/dm_imu.c diff --git a/assets/User_code/device/dm_imu.h b/assets/User_code/device/dm_imu/dm_imu.h similarity index 100% rename from assets/User_code/device/dm_imu.h rename to assets/User_code/device/dm_imu/dm_imu.h diff --git a/assets/User_code/device/dr16.c b/assets/User_code/device/dr16/dr16.c similarity index 100% rename from assets/User_code/device/dr16.c rename to assets/User_code/device/dr16/dr16.c diff --git a/assets/User_code/device/dr16.h b/assets/User_code/device/dr16/dr16.h similarity index 100% rename from assets/User_code/device/dr16.h rename to assets/User_code/device/dr16/dr16.h diff --git a/assets/User_code/device/ist8310.c b/assets/User_code/device/ist8310/ist8310.c similarity index 100% rename from assets/User_code/device/ist8310.c rename to assets/User_code/device/ist8310/ist8310.c diff --git a/assets/User_code/device/ist8310.h b/assets/User_code/device/ist8310/ist8310.h similarity index 100% rename from assets/User_code/device/ist8310.h rename to assets/User_code/device/ist8310/ist8310.h diff --git a/assets/User_code/device/led.c b/assets/User_code/device/led/led.c similarity index 100% rename from assets/User_code/device/led.c rename to assets/User_code/device/led/led.c diff --git a/assets/User_code/device/led.h b/assets/User_code/device/led/led.h similarity index 100% rename from assets/User_code/device/led.h rename to assets/User_code/device/led/led.h diff --git a/assets/User_code/device/motor.c b/assets/User_code/device/motor/motor.c similarity index 100% rename from assets/User_code/device/motor.c rename to assets/User_code/device/motor/motor.c diff --git a/assets/User_code/device/motor.h b/assets/User_code/device/motor/motor.h similarity index 100% rename from assets/User_code/device/motor.h rename to assets/User_code/device/motor/motor.h diff --git a/assets/User_code/device/motor_dm.c b/assets/User_code/device/motor_dm/motor_dm.c similarity index 100% rename from assets/User_code/device/motor_dm.c rename to assets/User_code/device/motor_dm/motor_dm.c diff --git a/assets/User_code/device/motor_dm.h b/assets/User_code/device/motor_dm/motor_dm.h similarity index 100% rename from assets/User_code/device/motor_dm.h rename to assets/User_code/device/motor_dm/motor_dm.h diff --git a/assets/User_code/device/motor_lk.c b/assets/User_code/device/motor_lk/motor_lk.c similarity index 100% rename from assets/User_code/device/motor_lk.c rename to assets/User_code/device/motor_lk/motor_lk.c diff --git a/assets/User_code/device/motor_lk.h b/assets/User_code/device/motor_lk/motor_lk.h similarity index 100% rename from assets/User_code/device/motor_lk.h rename to assets/User_code/device/motor_lk/motor_lk.h diff --git a/assets/User_code/device/motor_lz.c b/assets/User_code/device/motor_lz/motor_lz.c similarity index 100% rename from assets/User_code/device/motor_lz.c rename to assets/User_code/device/motor_lz/motor_lz.c diff --git a/assets/User_code/device/motor_lz.h b/assets/User_code/device/motor_lz/motor_lz.h similarity index 100% rename from assets/User_code/device/motor_lz.h rename to assets/User_code/device/motor_lz/motor_lz.h diff --git a/assets/User_code/device/motor_odrive.c b/assets/User_code/device/motor_odrive/motor_odrive.c similarity index 100% rename from assets/User_code/device/motor_odrive.c rename to assets/User_code/device/motor_odrive/motor_odrive.c diff --git a/assets/User_code/device/motor_odrive.h b/assets/User_code/device/motor_odrive/motor_odrive.h similarity index 100% rename from assets/User_code/device/motor_odrive.h rename to assets/User_code/device/motor_odrive/motor_odrive.h diff --git a/assets/User_code/device/motor_rm.c b/assets/User_code/device/motor_rm/motor_rm.c similarity index 100% rename from assets/User_code/device/motor_rm.c rename to assets/User_code/device/motor_rm/motor_rm.c diff --git a/assets/User_code/device/motor_rm.h b/assets/User_code/device/motor_rm/motor_rm.h similarity index 100% rename from assets/User_code/device/motor_rm.h rename to assets/User_code/device/motor_rm/motor_rm.h diff --git a/assets/User_code/device/motor_vesc.c b/assets/User_code/device/motor_vesc/motor_vesc.c similarity index 100% rename from assets/User_code/device/motor_vesc.c rename to assets/User_code/device/motor_vesc/motor_vesc.c diff --git a/assets/User_code/device/motor_vesc.h b/assets/User_code/device/motor_vesc/motor_vesc.h similarity index 100% rename from assets/User_code/device/motor_vesc.h rename to assets/User_code/device/motor_vesc/motor_vesc.h diff --git a/assets/User_code/device/oid.c b/assets/User_code/device/oid/oid.c similarity index 100% rename from assets/User_code/device/oid.c rename to assets/User_code/device/oid/oid.c diff --git a/assets/User_code/device/oid.h b/assets/User_code/device/oid/oid.h similarity index 100% rename from assets/User_code/device/oid.h rename to assets/User_code/device/oid/oid.h diff --git a/assets/User_code/device/ops9.c b/assets/User_code/device/ops9/ops9.c similarity index 100% rename from assets/User_code/device/ops9.c rename to assets/User_code/device/ops9/ops9.c diff --git a/assets/User_code/device/ops9.h b/assets/User_code/device/ops9/ops9.h similarity index 100% rename from assets/User_code/device/ops9.h rename to assets/User_code/device/ops9/ops9.h diff --git a/assets/User_code/device/rc_can.c b/assets/User_code/device/rc_can/rc_can.c similarity index 100% rename from assets/User_code/device/rc_can.c rename to assets/User_code/device/rc_can/rc_can.c diff --git a/assets/User_code/device/rc_can.h b/assets/User_code/device/rc_can/rc_can.h similarity index 100% rename from assets/User_code/device/rc_can.h rename to assets/User_code/device/rc_can/rc_can.h diff --git a/assets/User_code/device/servo.c b/assets/User_code/device/servo/servo.c similarity index 100% rename from assets/User_code/device/servo.c rename to assets/User_code/device/servo/servo.c diff --git a/assets/User_code/device/servo.h b/assets/User_code/device/servo/servo.h similarity index 100% rename from assets/User_code/device/servo.h rename to assets/User_code/device/servo/servo.h diff --git a/assets/User_code/device/vofa.c b/assets/User_code/device/vofa/vofa.c similarity index 100% rename from assets/User_code/device/vofa.c rename to assets/User_code/device/vofa/vofa.c diff --git a/assets/User_code/device/vofa.h b/assets/User_code/device/vofa/vofa.h similarity index 100% rename from assets/User_code/device/vofa.h rename to assets/User_code/device/vofa/vofa.h diff --git a/assets/User_code/device/ws2812.c b/assets/User_code/device/ws2812/ws2812.c similarity index 100% rename from assets/User_code/device/ws2812.c rename to assets/User_code/device/ws2812/ws2812.c diff --git a/assets/User_code/device/ws2812.h b/assets/User_code/device/ws2812/ws2812.h similarity index 100% rename from assets/User_code/device/ws2812.h rename to assets/User_code/device/ws2812/ws2812.h