aewaqr 2024-02-16 22:53 采纳率: 100%
浏览 534
已结题

stm32keil中出现大量未定义错误

初学stm32练习窗口关门狗时keil中遇到大量未定义错误。

以下是我的main函数和wdg.c文件。
添加不少头文件而且调换顺序还是没有解决,求解答

img

img

img

img

img

  • 写回答

7条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2024-02-16 22:53
    关注

    引自免费微信小程序:皆我百晓生

    在您的描述中,您遇到了STM32单片机项目在Keil编译过程中出现大量未定义错误。这些问题主要集中在USART、WDG和SYS模块的初始化代码上。这些错误通常是由于头文件包含不正确或者相应的库文件没有被正确链接导致的。

    以下是针对您提供的错误信息进行的分析与建议:

    1. USART相关错误:

      • 错误提示表明UART_HandleTypeDef等结构体以及相关的宏定义未找到。这通常是因为没有包含正确的USART HAL库头文件,应在usart.c或需要使用该结构体的文件开始处加入:
        #include "stm32f1xx_hal_uart.h"
        
    2. WDG相关错误:

      • 在wdg.h文件中的函数声明有语法错误,应该是这样的:
        void wwdg_ini(uint8_t tr, uint8_t wr, uint32_t fprer);
        
      • 确保在wdg.c文件中包含了对应的WWDG库文件:
        #include "stm32f1xx_hal_wwdg.h"
        
    3. SYS系统时钟配置相关错误:

      • 类似的,对于RCC和系统时钟配置相关的错误,需要确保包含了正确的RCC和系统时钟初始化的HAL库头文件:
        #include "stm32f1xx_hal_rcc.h"
        
    4. 通用问题:

      • 检查头文件路径是否正确,尤其是自定义的BSP(板级支持包)文件。
      • 确认所有依赖的库文件(.c源文件)已经添加到工程中,并且被正确编译。
      • 验证工程设置中是否正确指定了STM32F1系列的启动文件(startup_stm32f103xe.s),同时确认HAL库和CMSIS库版本与目标MCU型号匹配。

    为了彻底解决这些问题,请按照以下步骤检查并修正:

    • 检查每个源文件开头的#include语句,确保包含了对应功能模块的HAL库头文件。
    • 检查工程设置,确保所有必要的源文件都被正确地添加到了工程中。
    • 确认库文件版本正确无误,如需下载最新版HAL库和CMSIS库,请至ST官方网站下载STM32CubeMX工具生成对应的工程模板。

    最后,请重新整理代码结构,例如将main.c和相关模块的头文件和源文件排列如下:

    - Drivers/
        - STM32F1xx_HAL_Driver/
            - inc/
                - stm32f1xx_hal.h
                - stm32f1xx_hal_uart.h
                - stm32f1xx_hal_wwdg.h
                - ...
            - src/
                - stm32f1xx_hal_uart.c
                - stm32f1xx_hal_wwdg.c
                - ...
    - BSP/
        - WDG/
            - wdg.c
            - wdg.h
        - LED/
            - led.c
            - led.h
        - SYSTEM/
            - usart/
                - usart.c
                - usart.h
            - sys/
                - sys.c
                - sys.h
    - main.c
    - system_stm32f1xx.c
    - startup_stm32f103xe.s
    

    然后根据上述结构调整项目的包含路径和源文件添加情况。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(6条)

报告相同问题?

问题事件

  • 系统已结题 2月25日
  • 已采纳回答 2月17日
  • 创建了问题 2月16日