代码逻辑和功能

📅 2026/8/18 12:46:41
代码逻辑和功能
111111111111111111111111111111111111111111user\ #【顶层域】用户层极简初始化入口及各级中断路由 ├── main.c # 初始化入口 ├── stack_watermark.c # 其他文件未使用 └── stm32g4xx_it.c # 中断服务程序文件只做转发不做复杂逻辑 components\ #【模块域】业务无关的外围器件芯片驱动 ├── angle_sensor\ # ├── foc_math\ # 坐标变换实现 ├── lpf\ # 一阶低通滤波器 ├── motor_drv\ # 驱动器的GPIO控制封装驱动使能、故障读取和电流采样校准 ├── op3_led\ # 控制LED的GPIO驱动电平转换初始化设置亮灭 ├── op3_sense\ # 把ADC的原始采样数字换算成实际数学值 ├── pid\ # 通用的离散PID控制器 ├── segger_rtt\ # ├── speed_sensor\ # M法计算速度 ├── tactile\ # └── tim2_portable_timer\ # bsp\stm32g4xx #【底层域】板级支持包 (硬件抽象层屏蔽HAL) ├── bsp_adc.c # ADC配置零偏转换中断 ├── bsp_fdcan.c # ├── bsp_flash_param.c # ├── bsp_gpio.c # 将GPIO初始化集中在BSP层 ├── bsp_hrtim.c # 配置pwm模式 ├── bsp_lpuart1.c # ├── bsp_nvic.c # 文件未使用 ├── bsp_pwm.c # ├── bsp_spi.c # 配置DMA与角度传感器通信 ├── bsp_svpwm.c # ├── bsp_tim.c # 配置TIM1产生周期中断开启DWT周期计数器 ├── stm32g4xx_hal_msp.c # MSP初始化主要配置全局底层硬件资源 ├── stm32g4xx_hal_timebase_tim.c # 使用TIM6产生毫秒级中断作为HAL库的时间基准 └── system_stm32g4xx.c # hal\stm32g4xx # 【底层域】MCU 原厂固件库 (禁止修改) ├── Drivers\ # CMSIS和HAL库文件 └── startup\ # 启动文件 config\ #【配置域】全局统一宏配置与管脚分配 ├── config_all.h # 全局配置总入口用于包含下面的配置方便直接调用 ├── config_bsp.h # 板级硬件配置外设功能开关GPIO引脚映射时钟及目标频率 ├── config_chip.h # 芯片系列选择未使用 ├── config_hal.h # 芯片型号检查 ├── FreeRTOSConfig.h # FreeRTOS内核配置工程的调度、内存、定时器、中断和功能配置 ├── stm32g4xx_hal_conf.h # STM32 HAL总配置 └── stm32g4xx_hal_fdcan.h # FDCAN同名转发层 app\ #【业务域】核心业务逻辑与线程调度总管 ├── app_freertos.c # FreeRTOS的任务配置创建互斥锁、初始化CAN通信、创建应用任务 ├── audio_pcm.c # ├── canfd_comm.c # ├── canfd_proto.c # ├── device_info.c # ├── host_data_parse.c # ├── motor_beep_run.c # 利用电机绕组发声 ├── motor_cali_run.c # 空文件未使用 ├── motor_ctrl.c # 总调度中心切换运行模式、处理状态机、调试变量 ├── motor_normal_run.c # 正常闭环FOC和应用控制 ├── motor_test_run.c # 开环测试、校准和自动测试 ├── tactile_task.c # └── user_ota.c # services\ # 【模块域】业务无关的纯软系统基石 (如 RTOS、RingBuffer) docs\ # 【文档域】项目设计图纸及调试文档 tool\ # 【工具域】各类 Python 自动化脚本或编译流水线 .bat 批处理