0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【笔记】单片机头文件的顺序会让程序报错?

撞上电子 2023-05-19 09:50 次阅读

单片机程序中的头文件对程序的影响非常重要。头文件包含了函数、宏、结构体和其他声明的定义,它们提供了程序所需的各种功能和库。头文件的正确顺序可以确保程序能够正确编译、链接,并正确地使用所需的函数和定义。头文件的正确顺序主要涉及以下几个方面:1. 依赖关系和声明顺序:在编写单片机程序时,可能会有一些头文件之间存在依赖关系。某些头文件中的定义和声明可能依赖于其他头文件中的内容。因此,正确的顺序应该是先包含被依赖的头文件,然后再包含依赖于它们的头文件。这样可以确保在使用函数或定义之前,它们已经被声明或定义过。2. 硬件特定库的头文件:单片机通常有一些硬件特定的功能和外设,例如GPIO、UART、SPI等。与这些功能和外设相关的库通常会提供对应的头文件。正确的顺序应该是首先包含与单片机的硬件相关的库的头文件。这些头文件定义了与硬件寄存器、配置和功能相关的声明和定义。3. 外设库头文件:如果程序使用了外部设备,如传感器、显示器等,需要包含与这些设备相关的库的头文件。这些头文件提供了与外设通信、配置和操作相关的函数和定义。正确的顺序是在硬件特定库头文件之后,包含与外设库相关的头文件。下面是一个头文件顺序的示例:

#include//标准库头文件#include "stm32fxxx.h" // 单片机特定库头文件#include "lcd.h" // LCD外设库头文件#include"utils.h" //自定义头文件

在这个示例中,首先包含了标准库的头文件,然后是单片机特定库的头文件,接着是LCD外设库的头文件,最后是自定义的头文件。这个顺序满足了依赖关系和声明顺序的要求。当涉及更复杂的单片机程序时,可能会涉及更多的头文件和模块。以下是两个复杂示例的头文件顺序:

#include//标准库头文件#include "stm32fxxx.h" // 单片机特定库头文件#include "lcd.h" // LCD外设库头文件#include "peripheral.h" // 外设库头文件#include "utils.h" // 自定义头文件#include"config.h"//配置头文件

在这个示例中,首先包含了标准库的头文件,然后是单片机特定库的头文件。接下来,包含了与LCD外设相关的头文件,然后是其他外设库的头文件。然后是自定义的头文件,最后是项目的配置头文件。

#include // 标准库头文件#include "config.h" // 配置头文件#include "utils.h" // 自定义头文件#include "peripheral.h" // 外设库头文件#include "uart.h" // UART外设库头文件#include "adc.h" // ADC外设库头文件#include "sensor.h" // 传感器库头文件#include "lcd.h" // LCD外设库头文件#include "main.h" // 主程序头文件

在这个示例中,首先包含了标准库的头文件,然后是项目的配置头文件和自定义头文件。接下来是外设库的头文件,按照外设的使用顺序进行排序,先是UART外设库的头文件,然后是ADC外设库的头文件。然后是与传感器相关的头文件,再然后是LCD外设库的头文件。最后是主程序的头文件,其中包含了主函数和其他主要逻辑的定义和声明。
在实际的单片机开发中,头文件的顺序可能因项目的复杂性、特定的硬件需求或开发团队的规范而有所不同。因此,根据具体情况,可能需要适当调整头文件的顺序。请注意,以上只是一般的示例,具体的头文件顺序可能因单片机型号、开发环境和项目要求而有所不同。在编写程序时,最好参考相关单片机的文档和开发工具的指导,以确保正确的头文件顺序和良好的程序结构。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6024

    文章

    44392

    浏览量

    629452
  • 程序
    +关注

    关注

    115

    文章

    3728

    浏览量

    80491
收藏 人收藏

    评论

    相关推荐

    单片机hex文件反编译成C语言的过程

    单片机和Hex文件简介 单片机(Microcontroller Unit,MCU)是一种集成了处理器、存储器和输入/输出接口的微型计算机。它广泛应用于各种嵌入式系统和智能设备中。单片机
    的头像 发表于 09-02 10:49 802次阅读

    stm32单片机烧录程序擦除原来的程序

    的二进制文件写入单片机,并在此过程中自动擦除原有的程序内容。 具体来说,当使用烧录工具进行烧录时,用户通常只需要选择正确的芯片型号和连接方式,然后将待烧录的程序文件加载到工具中。接下来
    的头像 发表于 09-02 09:42 472次阅读

    可重复头文件的固定结构

    年轻人,你可曾记得,在修习C语言的时候,见过这样的字句:在创建头文件的时候,一定要加入保护宏。
    的头像 发表于 08-29 10:23 198次阅读
    可重复<b class='flag-5'>头文件</b>的固定结构

    IDF-V4.3环境下包含了库的头文件会编译报错,为什么?

    hello_world_main.c里面包含头文化 #include "xtensa/core-macros.h",编译则报错:找不到头文件; Pss:CMakeLists.txt
    发表于 06-21 08:12

    引用外部文件夹中的头文件时,如何VSCODE不提示波浪线错误?

    各位好: 我将常用的组件放在项目文件夹以外的某个地方,尝试在项目内引用此文件夹下的组件,失败,在代码中无法include相关头文件。我在main组件中也添加了requires,任然失败。 另外,在VSCODE中,当我引用外部
    发表于 06-07 08:19

    components包含头文件错误是怎么回事?

    我新建了一个工程,添加了一个BLE组件,现在我在BLE组件的头文件中包含了如下文件Code: Select all #include \"api/esp_gatt_common_api.h
    发表于 06-06 07:21

    请问为什么库函数头文件和寄存器头文件不可共用?

    CLK_CKDIVR=0x01;可是这么编程后就报错iostm8s208mb.h头文件缺少括号,不知道为何库函数头文件与寄存器头文件放一起时哪构成语法错误了;请问我这个把库函数一句一句
    发表于 04-28 06:22

    如何在Cubemx中添加所有的外设头文件

    cubemx是一个图形生成代码的软件,可以很好的提高写代码的效率,减少时间。但同时也有一个很大的问题:每次设置完后生成的代码,只包含设置的外设的头文件,如果想要添加其他外设的代码,可能因此报错
    发表于 04-01 07:46

    在ADUCM360_project.c文件里面为什么添加DioLid.h头文件报错?如何正确添加自己编写的头文件

    在ADUCM360_project.c文件里面为什么添加DioLid.h头文件报错?怎么正确添加自己编写的头文件
    发表于 01-11 06:09

    单片机芯片怎么写入程序

    单片机芯片的程序写入是通过将程序代码写入单片机芯片的非易失性存储器(如Flash)中实现的。 在计算机科学和电子工程领域,单片机是一种集成电
    的头像 发表于 01-05 14:06 6978次阅读

    keil5mdk怎么编写51单片机程序

    编写51单片机程序需要以下步骤: 编写程序框架:首先,你需要定义程序所需要的变量和常量,以及设置中断向量和寄存器的初始状态。这些信息可以根据程序
    的头像 发表于 12-25 14:54 1242次阅读

    C语言必备知识头文件包含

    头文件在C语言中是非常重要的组成部分。
    的头像 发表于 12-01 18:20 1571次阅读

    什么是头文件头文件编写的一般格式要求是怎样?

    本文介绍头文件的定义、编写、保存及引用等方面的内容,包括了一般的格式要求、例程等。
    的头像 发表于 11-08 16:25 1477次阅读
    什么是<b class='flag-5'>头文件</b>?<b class='flag-5'>头文件</b>编写的一般格式要求是怎样?

    单片机数码管驱动学习笔记

    51单片机数码管驱动笔记
    发表于 11-06 17:23 1次下载

    单片机复位的条件 单片机可以复位多少次 程序导致单片机复位吗

    单片机复位的条件 单片机可以复位多少次 程序导致单片机复位吗  单片机复位的条件: 1. 上电
    的头像 发表于 10-17 16:44 2933次阅读