问题描述
我正在使用“ SparkFun Qwiic键盘”,并了解SparkFun提供的库。
在此函数中,无效接收事件( int numberOfBytesReceived )(第212行)
“已收到numberOfBytes” 最终值为多少?
此函数用于另一个函数 void startI2C()(第295行)
但是我仍然不知道这个值是什么?
请帮助我,非常感谢。
https://github.com/sparkfun/Qwiic_Keypad/blob/master/Firmware/Qwiic_KeyPad/Qwiic_KeyPad.ino
解决方法
所以您说:“此功能由另一个功能使用。”,这并非完全正确。 305行中发生了什么:
Wire.onReceive(receiveEvent);
,是receiveEvent由函数指针传递。 该文档正在进一步澄清( https://www.arduino.cc/en/Reference/WireOnReceive ):
Wire.onReceive(handler)
说明:
注册当从属设备接收到来自主设备的传输时要调用的功能。
参数处理程序:
从站接收数据时要调用的函数;这应该使用一个int参数(从主设备读取的字节数),并且不返回任何内容,例如:void myHandler(int numBytes)
返回:无
因此,每当从属设备从主设备获取传输时,就会调用已注册的函数,在这种情况下,称为 receiveEvent ,输入参数是从设备从主设备读取的字节数。 >