unknown type name 'TIM_HandleTypeDef' 的一个原因

本文分享了作者在使用Stm32CubeIDE遇到编译错误“unknowntypename‘TIM_HandleTypeDef’”的解决过程。通过调整项目文件结构,将根目录下的代码移动到/Core/Inc和/Core/Src目录下,成功解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前几天由于电脑硬盘坏了, 项目文件突然间就打不开了 . 整个项目文件全部消失了. 幸好在软件的帮助下, 找了回来最主要的几个文件.
于是重装电脑后, Stm32CubeIDE 新建了项目.ioc文件重新生成了代码. 然后把重要文件复制过来.

然后Stm32CubeIDE 编译的时候发现报错. unknown type name ‘TIM_HandleTypeDef’ 用F3按键却能定位到类型.

起初以为是固件库有问题, 重新下了一边, 发现不行.

后来新建了一个项目,发现我的文件夹下,多了一层
在根目录下多了一个Inc 和 Src目录 , 我的文件放在这里的.
然后在Core下面还有一个Inc和Src,
于是比较了一下新的项目. 发现正常的只有个 /Core/Inc和 /Core/Src 两个目录.
于是把根目录下的代码剪切到/Core下面就正常了.

====================[ 构建 | Project | Debug ]==================================== /Users/mac/Applications/CLion.app/Contents/bin/cmake/mac/aarch64/bin/cmake --build /Users/mac/Desktop/Project/cmake-build-debug --target Project -j 6 [1/2] Building C object CMakeFiles/Project.dir/Core/Src/main.c.obj FAILED: CMakeFiles/Project.dir/Core/Src/main.c.obj /opt/homebrew/bin/arm-none-eabi-gcc -DDEBUG -DSTM32F103xE -DUSE_HAL_DRIVER -I/Users/mac/Desktop/Project/Core/Inc -I/Users/mac/Desktop/Project/Drivers/STM32F1xx_HAL_Driver/Inc -I/Users/mac/Desktop/Project/Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I/Users/mac/Desktop/Project/Drivers/CMSIS/Device/ST/STM32F1xx/Include -I/Users/mac/Desktop/Project/Drivers/CMSIS/Include -mcpu=cortex-m3 -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections -O0 -g3 -std=gnu11 -fdiagnostics-color=always -MD -MT CMakeFiles/Project.dir/Core/Src/main.c.obj -MF CMakeFiles/Project.dir/Core/Src/main.c.obj.d -o CMakeFiles/Project.dir/Core/Src/main.c.obj -c /Users/mac/Desktop/Project/Core/Src/main.c /Users/mac/Desktop/Project/Core/Src/main.c:171:1: error: unknown type name 'TIM_HandleTypeDef'; did you mean 'RTC_HandleTypeDef'? 171 | TIM_HandleTypeDef htim2; | ^~~~~~~~~~~~~~~~~ | RTC_HandleTypeDef /Users/mac/Desktop/Project/Core/Src/main.c: In function 'MX_TIM2_Init': /Users/mac/Desktop/Project/Core/Src/main.c:175:8: error: request for member 'Instance' in something not a structure or union 175 | htim2.Instance = TIM2; | ^ /Users/mac/Desktop/Project/Core/Src/main.c:176:8: error: request for member 'Init' in something not a structure or union 176 | htim2.Init.Prescaler = 7200 - 1; // 72MHz/7200 = 10kHz | ^ /Users/mac/Desktop/Project/Core/Src/main.c:177:8: error: request for member 'Init' in something not a structure or union 177 | htim2.Init.CounterMode = TIM_COUNTERMODE_UP; | ^ /Users/mac/Desktop/Project/Core/Src/main.c:177:28: error: 'TIM_COUNTERMODE_UP' undeclared (first use in this function) 177 | htim2.Init.CounterMode = TIM_COUNTERMODE_UP; | ^~~~~~~~~~~~~~~~~~ /Users/mac/Desktop/Project/Core/Src/main.c:177:28: note: each undeclared identifier is reported only once for each function it appears in /Users/mac/Desktop/Project/Core/Src/main.c:178:8: error: request for member 'Init' in something not a structure or union 178 | htim2.Init.Period = 10 - 1; // 10kHz/10 = 1kHz → 1ms中断 | ^ /Users/mac/Desktop/Project/Core/Src/main.c:179:8: error: request for member 'Init' in something not a structure or union 179 | htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; | ^ /Users/mac/Desktop/Project/Core/Src/main.c:179:30: error: 'TIM_CLOCKDIVISION_DIV1' undeclared (first use in this function) 179 | htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; | ^~~~~~~~~~~~~~~~~~~~~~ /Users/mac/Desktop/Project/Core/Src/main.c:180:3: error: implicit declaration of function 'HAL_TIM_Base_Init' [-Wimplicit-function-declaration] 180 | HAL_TIM_Base_Init(&htim2); | ^~~~~~~~~~~~~~~~~ ninja: build stopped: subcommand failed.
03-20
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值