← 返回
开发者工具 中文

STM32 CubeMX

STM32CubeMX CLI operations for configuring pins, peripherals, DMA, interrupts, and generating code. Use cases: (1) Add/modify STM32 peripheral configuration...
用于配置引脚、外设、DMA、中断及生成代码的STM32CubeMX命令行操作。用例:(1) 添加/修改STM32外设配置...
aidankong aidankong 来源
开发者工具 clawhub v1.0.3 1 版本 99872.4 Key: 无需
★ 1
Stars
📥 763
下载
💾 85
安装
1
版本
#latest

概述

STM32CubeMX CLI Operations

Environment Setup

# STM32CubeMX path (modify based on your installation)
CUBEMX=/path/to/STM32CubeMX/STM32CubeMX

# Project path (adjust for your project)
PROJECT_DIR=/path/to/your/project
IOC_FILE=$PROJECT_DIR/your_project.ioc
SCRIPT_FILE=$PROJECT_DIR/cube_headless.txt

Core Workflow

1. Modify IOC config file → 2. Run CLI to generate code → 3. CMake build verification

Step 1: Modify IOC File

Edit the .ioc file to add/modify peripheral configuration.

Key Configuration Sections:

  • Mcu.IP0=XXX - Peripheral IP list, Mcu.IPNb is the count
  • Mcu.Pin0=PAx - Pin list, Mcu.PinsNb is the count
  • XXX.Signal=YYY - Pin signal mapping
  • ProjectManager.functionlistsort - Initialization function list

Step 2: Generate Code

# Headless mode (recommended)
$CUBEMX -q $SCRIPT_FILE

# Script file content
cat > $SCRIPT_FILE << 'EOF'
config load /path/to/your/project/your_project.ioc
project generate
exit
EOF

Step 3: Build Verification

cd $PROJECT_DIR
rm -rf build/Debug
cmake --preset Debug
cmake --build build/Debug

CLI Command Reference

CommandPurposeExample
------------------
config load Load IOC configurationconfig load /path/to/project.ioc
config save Save IOC configurationconfig save /path/to/project.ioc
project generateGenerate complete projectproject generate
project toolchain Set toolchainproject toolchain CMake
project path Set project pathproject path /path/to/project
project name Set project nameproject name MyProject
load Load MCUload STM32F103C8Tx
`setDriver LL>`Set driver typesetDriver ADC LL
exitExit programexit

Common Peripheral Configuration Templates

USART + DMA

See references/USART_DMA.md for detailed configuration

# Add IP
Mcu.IP6=USART2
Mcu.IPNb=7

# Pin configuration
PA2.Signal=USART2_TX
PA3.Signal=USART2_RX

# USART2 parameters
USART2.BaudRate=115200
USART2.Dmaenabledrx=1
USART2.Dmaenabledtx=1

# DMA configuration
Dma.Request0=USART2_RX
Dma.Request1=USART2_TX
Dma.USART2_RX.0.Instance=DMA1_Channel6
Dma.USART2_TX.1.Instance=DMA1_Channel7

# Interrupts
NVIC.USART2_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true

ADC Acquisition

# Add ADC1
Mcu.IP0=ADC1

# ADC configuration
ADC1.Channel-1\#ChannelRegularConversion=ADC_CHANNEL_5
ADC1.Rank-1\#ChannelRegularConversion=1
ADC1.SamplingTime-1\#ChannelRegularConversion=ADC_SAMPLETIME_1CYCLE_5
ADC1.NbrOfConversionFlag=1
ADC1.master=1

# Pin
PA5.Signal=ADCx_IN5
SH.ADCx_IN5.0=ADC1_IN5,IN5

TIM PWM

# TIM3 configuration
TIM3.Channel-PWM\ Generation1\ CH1=PWM_CHANNEL1
TIM3.Channel-PWM\ Generation2\ CH2=PWM_CHANNEL2
TIM3.IPParametersWithoutCheck=Prescaler,Period

# Pins
PA6.Signal=TIM3_CH1
PA7.Signal=TIM3_CH2

STM32F103C8T6 Resource Mapping

USART

PeripheralTXRXDMA TXDMA RX
--------------------------------
USART1PA9PA10DMA1_Ch4DMA1_Ch5
USART2PA2PA3DMA1_Ch7DMA1_Ch6
USART3PB10PB11DMA1_Ch2DMA1_Ch3

ADC Channels

ChannelPinChannelPin
------------------------
IN0PA0IN5PA5
IN1PA1IN6PA6
IN2PA2IN7PA7
IN3PA3IN8PB0
IN4PA4IN9PB1

TIM Channels

TimerCH1CH2CH3CH4
----------------------------
TIM1PA8PA9PA10PA11
TIM2PA0/PA5/PA15PA1/PB3PA2PA3
TIM3PA6/PB4PA7/PB5PB0PB1
TIM4PB6PB7PB8PB9

Troubleshooting

Q1: CLI execution has no effect

Cause: Paths must be absolute

# Wrong
./STM32CubeMX -q script.txt
# Correct
/path/to/STM32CubeMX/STM32CubeMX -q /path/to/project/script.txt

Q2: Generated code missing initialization functions

Cause: functionlistsort does not include the corresponding function

# Add initialization function
ProjectManager.functionlistsort=...,N-MX_XXX_Init-XXX-false-HAL-true

Q3: Peripheral code not generated

Checklist:

  1. Is IP in the Mcu.IPx list?
  2. Is Mcu.IPNb count correct?
  3. Is pin Signal configured?

Q4: DMA not associated

Solution: Enable peripheral DMA parameters

USART2.Dmaenabledrx=1
USART2.Dmaenabledtx=1

Quick Reference

# Complete workflow
cd /path/to/your/project
# 1. Edit IOC file
# 2. Generate code
/path/to/STM32CubeMX/STM32CubeMX -q cube_headless.txt
# 3. Build
cmake --preset Debug && cmake --build build/Debug
# 4. Check size
arm-none-eabi-size build/Debug/your_project.elf

References

版本历史

共 1 个版本

  • v1.0.3 当前
    2026-03-30 01:23 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

dev-programming

Mcporter

steipete
使用 mcporter CLI 直接列出、配置、认证及调用 MCP 服务器/工具(支持 HTTP 或 stdio),涵盖临时服务器、配置编辑及 CLI/类型生成功能。
★ 194 📥 67,386
dev-programming

CodeConductor.ai

larsonreever
AI驱动平台,提供快速全栈开发、智能体、工作流自动化及低代码AI集成的可扩展产品创建。
★ 71 📥 181,355
dev-programming

Github

steipete
使用 `gh` CLI 与 GitHub 交互,通过 `gh issue`、`gh pr`、`gh run` 和 `gh api` 管理议题、PR、CI 运行及高级查询。
★ 676 📥 325,551