[STM32F0] 使用 SSD1306 驱动时出现 “多重定义” 编译错误

[复制链接]
236|0
我正做一个项目用到了 Adafruit SSD1306 SPI 接口 OLED 屏。
在 main.c 中,我需要包含该驱动的头文件#include "ssd1306.h"。
但问题是,编译时会出现一系列multiple definition错误。例如:
multiple definition of `HAL_EXTI_ClearConfigLine'; ./Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti 3.o:/Users/chrisk/Documents/STM32CubeIDE/workspace_1.11.0/STM32_AdafruitSSD1306_128x32_Example/Debug/../Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti 3.c:318: first defined here        stm32f0xx_hal_exti.c        /STM32_AdafruitSSD1306_128x32_Example/Drivers/STM32F0xx_HAL_Driver/Src        line 318        C/C++ Problem
multiple definition of `HAL_EXTI_ClearPending'; ./Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti 3.o:/Users/chrisk/Documents/STM32CubeIDE/workspace_1.11.0/STM32_AdafruitSSD1306_128x32_Example/Debug/../Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti 3.c:497: first defined here        stm32f0xx_hal_exti.c        /STM32_AdafruitSSD1306_128x32_Example/Drivers/STM32F0xx_HAL_Driver/Src        line 497        C/C++ Problem
multiple definition of `HAL_EXTI_GenerateSWI'; ./Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti 3.o:/Users/chrisk/Documents/STM32CubeIDE/workspace_1.11.0/STM32_AdafruitSSD1306_128x32_Example/Debug/../Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_exti 3.c:518: first defined here        stm32f0xx_hal_exti.c        /STM32_AdafruitSSD1306_128x32_Example/Drivers/STM32F0xx_HAL_Driver/Src        line 518        C/C++ Problem
如果我删除#include "ssd1306.h"这一行,错误就会消失,但我需要用到头文件中的一些定义。
我的猜测是ssd1306.h头文件的第 18 行左右包含了某个资源可能是函数实现、全局变量等,而这个资源已经在其他地方被包含过了,因此导致了 “multiple definition” 错误。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

62

主题

64

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部