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外设库的头文件。最后是主程序的头文件,其中包含了主函数和其他主要逻辑的定义和声明。
在实际的单片机开发中,头文件的顺序可能因项目的复杂性、特定的硬件需求或开发团队的规范而有所不同。因此,根据具体情况,可能需要适当调整头文件的顺序。请注意,以上只是一般的示例,具体的头文件顺序可能因单片机型号、开发环境和项目要求而有所不同。在编写程序时,最好参考相关单片机的文档和开发工具的指导,以确保正确的头文件顺序和良好的程序结构。

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

    关注

    6035

    文章

    44554

    浏览量

    634663
  • 程序
    +关注

    关注

    117

    文章

    3785

    浏览量

    81004
收藏 人收藏

    评论

    相关推荐

    在同一个头文件里定义的read byte函数和write byte函数,为什么read不报错,write会报错

    在同一个头文件里定义的read byte函数和write byte函数,为什么read不报错,write会报错
    发表于 10-11 07:50

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

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

    如何将hex文件烧录进单片机

    将.hex文件烧录进单片机是一个涉及软件与硬件交互的过程,具体步骤根据不同的单片机型号、开发环境以及烧录工具而有所不同。以下是一个通用的操作流程,适用于大多数情况: 一、环境准备 安
    的头像 发表于 09-02 10:34 1891次阅读

    单片机烧录程序的基本步骤是什么

    单片机烧录程序单片机开发过程中非常重要的一步,它涉及到将编写好的程序代码通过一定的方式传输到单片机内部的存储器中,使
    的头像 发表于 09-02 09:47 998次阅读

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

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

    可重复头文件的固定结构

    年轻人,你可曾记得,在修习C语言的时候,见过这样的字句:在创建头文件的时候,一定要加入保护宏。
    的头像 发表于 08-29 10:23 345次阅读
    可重复<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里安装好了插件Espressif IDF,打开一个demo的文件夹,程序里总提示头文件找不到,为什么?

    在VSCode里安装好了插件Espressif IDF,打开一个demo的文件夹,程序里总提示头文件找不到,然后在终端里敲入idf.py build也报错,具体错误信息见附件里图片。这
    发表于 06-21 06:11

    引用外部文件夹中的头文件时,如何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 8273次阅读

    keil5mdk怎么编写51单片机程序

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