首先需要建一个名为HX711.h的头文件,在这个文件中声明一个HX711类。类的声明如下:
一个类通常包含两个部分:private和public。private中声明只能在这个类中被访问的变量和函数,而public中声明的变量和函数可以被外部程序所访问。在使用的HX711模块中需要定义两个引脚,所以定义两个变量DT_Pin和SCK_Pin,一般把变量定义成private属性。HX711_Init()函数用于初始化,可以直接定义成类的构造函数HX711();HX711_Read函数用于读取数据,将其修改为类的成员函数read()即可,函数一般定义成public属性。类里面出现的变量一般被称为成员变量,类里面出现的函数一般被称为成员函数。
完整的HX711.h程序清单如表9-6所示。
表9-6 HX711.h程序清单
表9-6中有一些新的语法,下面逐一进行展开介绍。
以“#”开头的语句称为预处理命令。在之前包含文件使用的#include以及在常量定义中使用的#define均为预处理命令。对于预处理命令,编译器不会直接对其进行编译,而是在编译之前,系统会预先处理这些命令。预处理命令有多种,作用各不相同。
1)宏定义
宏定义的一般形式为:
(www.xing528.com)
如在程序中使用“#define LED 2”语句,相当于定义了一个名为LED的常量,在实际编译前,系统会将代码中出现的所有LED替换成2,再对替换后的代码进行编译。
2)文件包含
文件包含命令有两种形式:
若程序中使用#include<Wire.h>,那么在预处理时系统会将该语句替换成Wire.h文件中的实际内容,然后再对替换后的代码进行编译。
文件包含命令的两种形式的实际效果是一样的,只是当使用<文件名>形式时,系统会优先在Energia库文件中寻找目标文件,若没有找到,系统会再到当前Energia项目的项目文件夹中查找;而使用“文件名“形式时,系统会优先在当前Energia项目的项目文件夹中查找,若没有找到,系统会查找Energia库文件。
3)条件编译
条件编译命令的一般形式为:
在HX711.h中出现了“#ifndef HX711_h”语句,系统会查找标识符HX711_h是否在程序的其他地方被#define定义过;如果没有被定义过,则定义该标识符,然后执行后面的程序段直到遇到#endif。这样写的目的主要是为了防止重复包含某个文件,避免程序编译出错。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。