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

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

    关注

    6074

    文章

    45335

    浏览量

    663313
  • 程序
    +关注

    关注

    117

    文章

    3836

    浏览量

    84745
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    单片机程序的执行

    更快的SRAM中,以得到更快的执行速度。而对于,单片机而言工作频率也就几M,几十M,从Flash中与从RAM中读的差异可能并不明显,不会成为程序执行的瓶颈。 而对于PC而言,Flash的速度太慢
    发表于 12-04 06:20

    为什么单片机还在用C语言编程?

    ,只是C语言是最适合单片机编程的高级语言。 一、单片机编程的特点 1.对单片机编程来说,我们首先要考虑的是单片机程序空间和数据空间都
    发表于 11-28 07:37

    VSCode + ESP-IDF环境下给ESP32-S3项目添加头文件

    VSCode + ESP-IDF环境下给ESP32-S3项目添加头文件
    的头像 发表于 11-28 07:27 675次阅读

    单片机烧录原理是怎样的?辉芒微单片机烧录程序详细步骤讲解

    烧录(Programming)就是把 .hex/.bin 文件里的机器码搬运进单片机片内 Flash 的过程。辉芒微(FMD)单片机内部有一块 自举 BootROM,上电时会先跑这段程序
    的头像 发表于 09-17 16:14 1374次阅读
    <b class='flag-5'>单片机</b>烧录原理是怎样的?辉芒微<b class='flag-5'>单片机</b>烧录<b class='flag-5'>程序</b>详细步骤讲解

    怎么测单片机系统频率

    单片机系统频率是指单片机工作时的时钟频率,它直接影响单片机的运行速度和处理能力,准确测量系统频率对单片机应用开发、程序调试和性能优化具有重要
    的头像 发表于 07-25 11:39 468次阅读

    单片机怎么驱动电机?

    、高效的控制。       单片机本身的输出电流和电压较小,通常无法直接驱动功率较大的电机,这是因为电机在启动和运行时需要较大的电流,若直接由单片机供电,可能因过载损坏单片机。因此,
    的头像 发表于 07-25 09:31 437次阅读

    单片机怎么烧程序

    单片机程序是将编写好的程序代码写入单片机内部存储单元,单片机按照预设逻辑工作的过程,是
    的头像 发表于 07-23 11:47 644次阅读

    为啥51单片机能搞,峰岹的就会报错呢?

    如图图1是stc系列单片机的代码,发送字符串都可以,但是图二峰岹的代码发送字符串就不行,会报错
    发表于 07-09 13:39

    STC单片机范例程序

    电子发烧友网站提供《STC单片机范例程序.zip》资料免费下载
    发表于 06-04 16:27 8次下载

    2.4寸TFT彩屏配套测试程序-51单片机

    如题,2.4寸TFT彩屏配套测试程序-51单片机
    发表于 06-04 16:26 0次下载

    51单片机笔记(建议收藏!)

    了解一下。 5、掌握一个电路设计软件,对于单片机,其实Protell99都可以了。 6、会使用万用表,最好有示波器啦,而且要掌握一些常用的测试手段。 7、在自己学习过程中,整理并形成自己的元器件库
    发表于 05-21 17:24

    cypress3014在头文件修改编译后,时间不变,这样头文件程序有被执行吗?

    你好,请问我在头文件修改编译后,时间不变,这样头文件程序有被执行吗,怎么解决这个问题
    发表于 05-14 06:50

    S32DS软件编译报错,安装SDK报错的原因?

    在编译工程时报错,提示缺少头文件,查找本机,确实没有头文件,应该是库文件或者SDK安装缺失,然后尝试安装库文件时,发现安装“SW32K3_S
    发表于 03-21 06:23

    用dlpc347x_samples运行测试,频繁发生报错怎么解决?

    1,用dlpc347x_samples运行测试,频繁发生报错,用GUI打开重新get信息,提示如下: 一般usb重新插拔,刷新固件恢复正常,但再次运行samples几次,又会复现,请问
    发表于 02-25 06:54

    单片机学习—C51源代码和Proteus仿真文件

    单片机学习—C51源代码和Proteus仿真文件.zip, 有各种例子
    发表于 02-10 13:46 2次下载