关于C语言的一个小问题(书中第五章IIC主机读取数据部分)
书上的代码(自己打的没打注释:shutup:)//wire master reader
#include<Wire.h>
void setup()
{
Wire.begin();
Serial.begin(9600);
}
void loop()
{
Wire.requestFrom(2, 6);
while(Wire.available()) //等待从机发送完数据
{
char c = Wire.read();
Serial.print(c);
}
delay(500);
}
就是打了注释的那句while(Wire.available())这里 Wire.available() 是不是应该 == 6……不太理解?_?
果子狸PLG 发表于 2017-7-24 10:43
嗯,但是括号里的函数不是只是返回一个字节数吗?是不是要有判断条件?_? ...
while里非0即为真 不是,前面的函数表有讲,这个是是返回接收到的字节数,和Serial.available()类似。
此时缓冲区里有多少自己就返回多少字节 另外书上的代码可见:https://clz.me/arduino-book/examples/ 奈何col 发表于 2017-7-24 09:29
不是,前面的函数表有讲,这个是是返回接收到的字节数,和Serial.available()类似。
此时缓冲区里有多少自 ...
嗯嗯,但是它在While里是不是要判断一下字符都进入了缓冲区? 果子狸PLG 发表于 2017-7-24 09:36
嗯嗯,但是它在While里是不是要判断一下字符都进入了缓冲区?
while(Wire.available())
这句话本身就是判断 奈何col 发表于 2017-7-24 10:38
while(Wire.available())
这句话本身就是判断
嗯,但是括号里的函数不是只是返回一个字节数吗?是不是要有判断条件?_? 奈何col 发表于 2017-7-24 12:02
while里非0即为真
啊~明白了,谢谢~ 应该是等设备发送完一针信息,然后返回一个非零的值,代表应答完,发送完信息 czyang2008 发表于 2017-7-27 17:16
应该是等设备发送完一针信息,然后返回一个非零的值,代表应答完,发送完信息 ...
这样啊~谢谢~
页:
[1]