在使用rt-thread studio 搭配cubemx配置SPI时出现unknown type name 'SPI_HandleTypeDef'
错误
之前也配置过,没出现过错误.按照这个流程
先配置cubemx->
添加SConscipt->"_weak main.c"->
添加头文件,初始化外设到main.c->
配置board.h->stm32f4xx_hal_conf.h
开启#define HAL_SPI_MODULE_ENABLED->
修改driver中stm32f4xx_hal_conf_bak.h
文件名
最后我在stm32f4xx_hal_conf_bak.h中也启用了#define HAL_SPI_MODULE_ENABLED
问题居然解决了……
没明白是怎么回事. studio没更新前好像不会这样……..
而且我按照board.h教程.
把void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
函数移到board.c提示我重复定义了.
我删了就好了.
我的理解是在cubemx里面开启#Define HAL_SPI_MODULE_ENABLE就好了.但是现在我这样做了会提示找不到SPI_HandleTypeDef.只有我在drivers文件夹下面的stm32f4xx_hal_conf_bak.h里面也开启#Define HAL_SPI_MODULE_ENABLE这个错误才消失.
为啥使用
stm32f4xx_hal_conf_bak.h
,stm32f4xx_hal_conf.h
没有吗?我在另一个网站看到了一个这两个相关的,
参考网站在这里https://blog.csdn.net/qq_40824852/article/details/123067421
在cubemx中代码生成后回到RT-Thread Studio工程,会提示stm32f4xx_hal_conf.h改为stm32f4xx_hal_conf_bak.h备份文件,是因为conf内存储着stm32的hal库配置信息,RT-Thread做了一个备份
我也是conf而没有conf.bak,所以我也是回到conf.h把相应的解除注释才去掉错误了,不知道这是为什么不自动备份了。
@张世争
@TATAZML
和你一样的情况,之前用2.2.8版本studio时cubmx生成代码后还studio会自动在drivers文件夹下改名一个_bak.h文件,后来升级到2.2.9后又新建了一个工程,用cubmx生成代码,这回不改名了,出现了两个同名stm32f4xx_hal_conf.h文件,一个在cubemx/Inc下,一个在drivers下。以前是cubemx/Inc下的那个有效,drivers下的那个_bak.h备份,现在好像变成了drivers下的有效了。