Arduino的高低(Arduino HIGH LOW)

2019-07-31 14:04发布

我有一个Arduino,我想知道到底是什么高和低意味着只要实际值去...难道他们签署整数? 无符号整型? 无符号字符??? 他们有什么价值? 我猜测,高与低可能是无符号整型与所有分别设置为1和0的位,但我不知道。 我希望能够利用HIGH做到位操作和LOW或通过比高其他或低值digitalWrite。 另外,我怎么会转换为高或低的整数,所以我能做到这一点?

Answer 1:

如果你想其他的值传递给digitalWrite(),你可以看看函数原型

void digitalWrite(uint8_t, uint8_t);

所以任何整数值(当然,0到255)会工作。 不知道是什么digitalWrite的行为()可能是,如果你通过它不是高和低以外的值。

因为高和低只是定义的常量,你可以不投一个整数他们(也没有将这项操作有意义)。 看样子,你可以在任何地方使用的是高和低预期的整数。

其实这样做是一个坏主意,虽然,有许多原因 - 高和低的定义可以改变(不可能的,但有可能),并没有从类型角度看是有意义的。 相反,你应该使用逻辑程序,以确定高或低是否应该传递给函数调用,然后实际上传递常数。



Answer 2:

看看hardware/arduino/cores/arduino/Arduino.h (至少在Arduino的1.0.1软件),线18和19:

 #define HIGH 0x1
 #define LOW  0x0

这意味着,这些定义是十六进制整数,你可以做你想做与他们任何位运算 - 多少意义,这将使但是,是不是现在真的我清楚。 还要记住,这些值可能会受到在稍后的时间来改变 - 这将更加不明智就这些位运算。



Answer 3:

要我2C添加到codeling的答案 。 线18--25 Arduino.h (1.0)为:

#define HIGH 0x1
#define LOW  0x0

#define INPUT 0x0
#define OUTPUT 0x1

#define true 0x1
#define false 0x0

因此, HIGH<==>OUTPUT<==>true<==>0x1LOW<==>INPUT<==>false<==>0x0 。 于是, HIGH<==>!LOWLOW<==>!HIGH ...



Answer 4:

的第一个参数digitalWrite()是一个针数。

的第二个参数digitalWrite()将:

1)写一个HIGH(3.3V或5V电源)或低电平(0V),以二进制输出或
2)使能(HIGH)或停用(LOW)上的二进制输入内部上拉。

对于任一参数位运算是没有意义的。 也许你需要使用analogWite()?

请参阅文档: digitalWrite() 常量



文章来源: Arduino HIGH LOW