本人使用的单片机为STM32G474RET6,使用CubeMX生成HAL基础HAL库文件。
在自己创建tim.c和tim.h文件,想要初始化TIM6时,出现一堆报错error: unknown type name 'HAL_StatusTypeDef' error: unknown type name 'HAL_LockTypeDef' error: unknown type name 'HAL_StatusTypeDef'; did you mean 'HAL_DMA_StateTypeDef'?
但奇怪的是点击这些报错,明明能够跳转到这些类型的定义呀
//
// Created by light on 24-8-9.
//
/* 用于配置定时器的文件 tim.h文件*/
#ifndef G4_CMAKE_DEMO1_TIM_H
#define G4_CMAKE_DEMO1_TIM_H
#include "stm32g4xx_hal_tim.h" //要对TIM6进行初始化,自然就想到要包含hal库中关于tim的文件
#endif //G4_CMAKE_DEMO1_TIM_H
//
// Created by light on 24-8-9.
//
/* 这是tim.c文件 */
#include "tim.h"
TIM_HandleTypeDef htim6;
/* TIM6的初始化函数 */
void MX_TIM6_Init(void) {
TIM_MasterConfigTypeDef sMasterConfig = {0};
htim6.Instance = TIM6;
// htim6.Init.Prescaler =
}
虽然我不知道这个问题出现的原因,但是我知道这个问题的解决方法
就是将tim.h文件中的
#include "stm32g4xx_hal_tim.h"
换成
#include "main.h"
我是怎么知道要这么做的呢,因为我看cubeMX生成的外设初始化代码中就是写的main.h
之后报错就没有了