stm32 包含头文件的问题

时间:2022-08-16 16:48:37
stm32f10x_it.c中需要函数EXTI_ClearITPendingBit ()等共3个,所以引用了头文件
#include "..\FWlib\inc\stm32f10x_exti.h"      
stm32f10x_exti.c在 \FWlib\SRC\文件夹下
链接后stm32f10x_exti.h可以找到,但是仍然报错:
linking...
..\ObjFlash\STM32-FD-ucos.axf: Error: L6218E: Undefined symbol EXTI_ClearITPendingBit (referred from 

stm32f10x_it.o).
..\ObjFlash\STM32-FD-ucos.axf: Error: L6218E: Undefined symbol EXTI_GetITStatus (referred from 

stm32f10x_it.o).
..\ObjFlash\STM32-FD-ucos.axf: Error: L6218E: Undefined symbol EXTI_Init (referred from bsp.o).

请问该怎么办?

6 个解决方案

#1


不是包含头文件的错误 是没有对应的c文件 找不到函数

把stm32f10x_exti.c文件加到工程中

#2


这个错误和头文件无关,是因为你没有将 stm32f10x_exti.c 加入工程。

另外,头文件包含不要那样写,直接写 #include "stm32f10x_exti.h",然后在工程文件中加入头文件搜索路径(使用相对路径)

#3


引用 2 楼 zhxianbin 的回复:
这个错误和头文件无关,是因为你没有将 stm32f10x_exti.c 加入工程。

另外,头文件包含不要那样写,直接写 #include "stm32f10x_exti.h",然后在工程文件中加入头文件搜索路径(使用相对路径)

谢谢啊,我已经把stm32f10x_exti.c加入了工程。
stm32f10x_it.c 需要引用stm32f10x_exti.c, 由于stm32f10x_it.c已经include "includes.h"了,我就把#include "..\FWlib\inc\stm32f10x_exti.h"      写进includes.h里  这样对了吧?

#4


引用 3 楼 ysmz4 的回复:
Quote: 引用 2 楼 zhxianbin 的回复:

这个错误和头文件无关,是因为你没有将 stm32f10x_exti.c 加入工程。

另外,头文件包含不要那样写,直接写 #include "stm32f10x_exti.h",然后在工程文件中加入头文件搜索路径(使用相对路径)

谢谢啊,我已经把stm32f10x_exti.c加入了工程。
stm32f10x_it.c 需要引用stm32f10x_exti.c, 由于stm32f10x_it.c已经include "includes.h"了,我就把#include "..\FWlib\inc\stm32f10x_exti.h"      写进includes.h里  这样对了吧?

写进includes.h里 或者 加入 stm32f10x_it.c都可以

#include "..\FWlib\inc\stm32f10x_exti.h" 最好写成  #include "stm32f10x_exti.h",然后在工程文件中加入头文件搜索路径(使用相对路径)

#5


该回复于2014-03-21 08:56:33被管理员删除

#6


太谢谢啦!!

#1


不是包含头文件的错误 是没有对应的c文件 找不到函数

把stm32f10x_exti.c文件加到工程中

#2


这个错误和头文件无关,是因为你没有将 stm32f10x_exti.c 加入工程。

另外,头文件包含不要那样写,直接写 #include "stm32f10x_exti.h",然后在工程文件中加入头文件搜索路径(使用相对路径)

#3


引用 2 楼 zhxianbin 的回复:
这个错误和头文件无关,是因为你没有将 stm32f10x_exti.c 加入工程。

另外,头文件包含不要那样写,直接写 #include "stm32f10x_exti.h",然后在工程文件中加入头文件搜索路径(使用相对路径)

谢谢啊,我已经把stm32f10x_exti.c加入了工程。
stm32f10x_it.c 需要引用stm32f10x_exti.c, 由于stm32f10x_it.c已经include "includes.h"了,我就把#include "..\FWlib\inc\stm32f10x_exti.h"      写进includes.h里  这样对了吧?

#4


引用 3 楼 ysmz4 的回复:
Quote: 引用 2 楼 zhxianbin 的回复:

这个错误和头文件无关,是因为你没有将 stm32f10x_exti.c 加入工程。

另外,头文件包含不要那样写,直接写 #include "stm32f10x_exti.h",然后在工程文件中加入头文件搜索路径(使用相对路径)

谢谢啊,我已经把stm32f10x_exti.c加入了工程。
stm32f10x_it.c 需要引用stm32f10x_exti.c, 由于stm32f10x_it.c已经include "includes.h"了,我就把#include "..\FWlib\inc\stm32f10x_exti.h"      写进includes.h里  这样对了吧?

写进includes.h里 或者 加入 stm32f10x_it.c都可以

#include "..\FWlib\inc\stm32f10x_exti.h" 最好写成  #include "stm32f10x_exti.h",然后在工程文件中加入头文件搜索路径(使用相对路径)

#5


该回复于2014-03-21 08:56:33被管理员删除

#6


太谢谢啦!!