夜雨聆风学习资料网

ARTICLE · 1026814

源码一模一样,一个能跑一个不行,真相出来

源码一模一样,一个能跑一个不行,真相出来

源码一模一样,一个能跑一个不行,真相出来

我把 STM32 工程从 D 盘复制到 E 盘,源码一个字节没动。结果原工程跑得好好的,副本烧进去 SPI 读回来的数据全是 0x00。

换板子、换杜邦线都没用,示波器夹着 SCK 连个波形都没有。同一块板子烧原工程立刻正常,我这才反应过来:代码清白,问题出在构建上。

打开 Keil 的工程文件一看,真相很荒唐——E 盘工程里漏了 stm32f1xx_hal_msp.c。这文件明明躺在磁盘目录里,却没被编进固件。

链接器找不到用户实现,就静默塞了个 2 字节的空函数顶上。它什么都不干直接返回,导致引脚重映射配置全废,SPI 自然就读不到数据。

最后右键把文件加回工程组,全量重编译一遍,SPI 立马恢复正常。

原文源码一模一样,一个能跑一个不行,真相出来真的绷不住了!
河北,2小时前,

相关学习资料