本帖最后由 jyl518-283289 于 2018-12-11 15:58 编辑 main.c自动生成如下: #include "main.h" SPI_HandleTypeDef hspi1; //STM32CubeMX自动生成 void SystemClock_Config(void); static void MX_GPIO_Init(void); static void MX_SPI1_Init(void); int main(void) { HAL_Init(); MX_GPIO_Init(); MX_SPI1_Init(); HAL_SPI_TransmitReceive(&hspi1, registerWord, Rx_Data, 7,1000); //在mian.c中使用“ hspi1”没有问题 while(1) { } } 但在自己编写的 .c文件中不能使用 main.c 中的 " hspi1 " 例如 example.c中 void ReadWriteByte(void) { //会报hspi1未定议错误 HAL_SPI_TransmitReceive(&hspi1, registerWord, Rx_Data, 7,1000); } 请教论坛各位大神, 怎么在自己编写的.c文件中, 调用main.c中已经定议的 " hspi1 "?? |
#include "spi.h"
extern SPI_HandleTypeDef hspi1
但是要用SPI_HandleTypeDef 类型,还得把相应的.h文件include进来。
谢谢,我试下。
谢谢,这方法应该可以,但要改动自动生成的部分了,
我就是不想改动自动生成的那部分,要是以后改下配置,重新生成就想不起来了
试了这个方法,不能解决。
哪里需要改自动生成部分呢?在spi.h中添加extern,在main.c中include就可以啦