STM32CubeMX实战:5分钟配置TOF激光测距模块串口通信
第一次接触激光测距模块时,我被寄存器配置折磨得够呛——直到发现STM32CubeMX这个神器。作为ST官方推出的图形化配置工具,它能将UART、GPIO等外设的初始化代码生成时间缩短90%。本文将以TOF Sense模块为例,演示如何用CubeMX快速搭建串口通信框架,特别适合刚入门STM32或追求开发效率的工程师。
1. 环境准备与硬件连接
在开始CubeMX配置前,需要准备好以下硬件:
- TOF Sense激光测距模块(支持UART输出)
- STM32开发板(本文以STM32F103C8T6为例)
- USB-TTL转换器(用于调试输出)
硬件连接只需三根线:
- 模块TXD → 开发板UART_RX(如PA3)
- 模块RXD → 开发板UART_TX(如PA2)
- 模块GND → 开发板GND
注意:不同型号TOF Sense供电电压可能不同(3.3V或5V),务必确认模块规格
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. CubeMX工程基础配置
启动STM32CubeMX后,按以下步骤创建新工程:
- 选择MCU型号:在Part Number搜索框输入"STM32F103C8",选择对应型号
- 配置时钟源:
- HSE选择Crystal/Ceramic Resonator
- 在Clock Configuration标签页将HCLK设置为72MHz
- 设置调试接口:
- SYS→Debug选择Serial Wire(避免下载后无法再次烧录)
c复制// 生成的时钟初始化代码片段(system_stm32f1xx.c)
void SystemClock_Config(void) {
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
RCC_OscInitStruct.HSEState = RCC_HSE_ON;
RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1;
RCC_
