laocuo1142 发表于 2025-1-21 15:55

使用MM32F103CBT6例程时,发现库中的 Device - MM32F103 - HAL_lib - src 文件夹中 HAL_spi.c 文件编译有错误

使用MM32F103CBT6例程时,发现库中的 Device - MM32F103 - HAL_lib - src 文件夹中 HAL_spi.c 文件编译有错误,表现在:..\Device\MM32F103\HAL_lib\src\HAL_spi.c(189): error: #136: struct "<unnamed>" has no field "EXTCTL" 共有15处错误,但错误相同

y1n9an 发表于 2025-2-18 16:01

遇到这种编译错误,通常意味着在 HAL_spi.c 文件中尝试访问的 SPI 结构体(或其他相关结构体)中不存在 EXTCTL 字段

q1d0mnx 发表于 2025-2-18 17:14

HAL_spi.c 文件中使用的结构体定义与头文件中的定义不一致。可能是因为头文件被错误地修改过,或者使用了错误版本的头文件

l1uyn9b 发表于 2025-2-18 18:23

如果你使用的 MCU 库版本与你的开发环境或硬件平台不兼容,可能会导致此类错误。确保你使用的库版本与你的硬件和开发工具链相匹配。

tax2r6c 发表于 2025-2-18 19:39

在 HAL_spi.c 文件中可能没有正确包含定义 SPI 结构体的头文件,或者包含了错误的头文件

su1yirg 发表于 2025-2-18 20:45

有时候,编译器或IDE的设置可能会影响代码的编译,特别是当涉及到路径和包含文件时

t1ngus4 发表于 2025-2-18 21:52

检查头文件,确保 HAL_spi.c 文件中包含了正确的头文件,并且这些头文件中定义了包含 EXTCTL 字段的结构体。

zhizia4f 发表于 2025-2-18 23:18

检查你使用的 MCU 库版本是否与你的硬件和开发工具链兼容。如果不确定,可以尝试下载并安装最新版本的库。

suw12q 发表于 2025-2-19 10:06

在整个项目中搜索 EXTCTL 字段,看看它是否在其他地方被定义或使用。这有助于确定问题是否由于错误的包含或定义造成的。

liu96jp 发表于 2025-2-19 11:25

确保编译器和IDE的设置正确,特别是与包含路径和预处理器定义相关的设置。

d1ng2x 发表于 2025-2-19 13:20

如果 EXTCTL 字段确实不存在于你的 SPI 结构体定义中,你可能需要查找替代的方法来实现你需要的功能,或者考虑使用不同版本的库或硬件平台。
页: [1]
查看完整版本: 使用MM32F103CBT6例程时,发现库中的 Device - MM32F103 - HAL_lib - src 文件夹中 HAL_spi.c 文件编译有错误