# m0car_26 **Repository Path**: blankwy/m0car_26 ## Basic Information - **Project Name**: m0car_26 - **Description**: 26年电赛小车 - **Primary Language**: C - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-25 - **Last Updated**: 2026-10-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # m0car_26 基于 TI MSPM0G3507 (天猛星) 的两驱电赛小车,使用 ccs 配置外设。 - **MCU:** MSPM0G3507 @ 80 MHz (40 MHz HFXT × SYSPLL ×4, /2) - **SDK:** mspm0_sdk@2.11.00.07 - **PWM 频率:** 100 kHz (TIMA0, 10 MHz 时基 / 1000 周期) - **算法:** 位置式 PID 速度环 - **电机驱动模块:** AT8236 - **IMU:** QMI8658C - **供电** 三路电源模块(电机12V直供,为主控5v供电经内部稳压转为3.3v) --- ## 引脚分配总览 ### 时钟 & 调试 | 引脚 | 功能 | 说明 | |------|------|------| | PA5 | HFXIN | 40 MHz 外部晶振输入 | | PA6 | HFXOUT | 40 MHz 外部晶振输出 | | PA20 | SWCLK | SWD 调试时钟 | | PA19 | SWDIO | SWD 调试数据 | ### 电机 PWM — TIMA0 (带死区互补输出) | 引脚 | 功能 | 宏定义 | 说明 | |------|------|--------|------| | PB8 | TIMA0 CCP0 | `GPIO_Motor_PWM_C0_PIN` | 左电机 IN1 | | PB9 | TIMA0 CCP0_CMPL | `GPIO_Motor_PWM_C0_CMPL_PIN` | 左电机 IN2 (互补) | | PA7 | TIMA0 CCP1 | `GPIO_Motor_PWM_C1_PIN` | 右电机 IN1 | | PB13 | TIMA0 CCP1_CMPL | `GPIO_Motor_PWM_C1_CMPL_PIN` | 右电机 IN2 (互补) | > 占空比中心点 500 (范围 0–1000),500 = 停转,>500 正转,<500 反转。 ### 编码器 — GPIO 中断 | 引脚 | 功能 | 触发沿 | 上下拉 | 中断 | |------|------|--------|--------|------| | PA14 | 编码器 A — A 相 (AEA) | 上升沿 | 下拉 | ✅ GROUP1 | | PA17 | 编码器 A — B 相 (AEB) | 下降沿 | 下拉 | ✅ GROUP1 | | PA21 | 编码器 B — A 相 (BEA) | 上升沿 | 下拉 | ✅ GROUP1 | | PA18 | 编码器 B — B 相 (BEB) | 下降沿 | — | ✅ GROUP1 | > A 相中断中读取 B 相电平判断旋转方向。 ### UART0 — 串口通信 | 引脚 | 功能 | 说明 | |------|------|------| | PA10 | UART0 TX | 发送 (9600 波特, 8N1) | | PA11 | UART0 RX | 接收 | ### I2C0 — 传感器总线 (预留) | 引脚 | 功能 | 说明 | |------|------|------| | PA28 | I2C0 SDA | 数据线 (100 kHz 标准模式) | | PA31 | I2C0 SCL | 时钟线 | > 当前代码中 I2C 已初始化但未使用,预留给 IMU 等传感器。 --- ## 按端口汇总 ### GPIOA (13 pins) | 引脚 | 用途 | |------|------| | PA5 | HFXT 晶振输入 | | PA6 | HFXT 晶振输出 | | PA7 | 右电机 PWM (TIMA0 CCP1) | | PA10 | UART0 TX | | PA11 | UART0 RX | | PA14 | 编码器 A — A 相 | | PA17 | 编码器 A — B 相 | | PA18 | 编码器 B — B 相 | | PA19 | SWDIO | | PA20 | SWCLK | | PA21 | 编码器 B — A 相 | | PA28 | I2C0 SDA | | PA31 | I2C0 SCL | ### GPIOB (3 pins) | 引脚 | 用途 | |------|------| | PB8 | 左电机 IN1 (TIMA0 CCP0) | | PB9 | 左电机 IN2 (TIMA0 CCP0_CMPL) | | PB13 | 右电机 IN2 (TIMA0 CCP1_CMPL) | --- ## 工程结构 ``` ├── main.c # 主程序, 编码器中断处理 ├── main.syscfg # SysConfig 外设配置 ├── Algos/ # MadgwickAHRS 姿态解算 ├── Drivers/ │ └── Motor/ # 电机驱动 (PWM + PID) ├── Hal/ # 硬件抽象层 ├── Tasks/ │ └── t_motorgo.c # 电机控制任务 └── Utils/ # 工具函数 ``` ## 编译与烧录 使用 ccs 配置为gcc编译 ## 参考 - [LP_MSPM0G3507 LaunchPad](https://www.ti.com/tool/LP-MSPM0G3507) - [MSPM0 SDK 文档](https://software-dl.ti.com/msp430/esd/MSPM0-SDK/latest/docs/english/tools/ccs_ide_guide/doc_guide/doc_guide-srcs/ccs_ide_guide.html)