Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么Arduino Midi库将十六进制F7读取为0_Arduino_Midi_Sysex - Fatal编程技术网

为什么Arduino Midi库将十六进制F7读取为0

为什么Arduino Midi库将十六进制F7读取为0,arduino,midi,sysex,Arduino,Midi,Sysex,我已经将我的效果处理器midi连接到盾牌中的arduino midi 我正在尝试使用arduino的Midi库读取来自效果处理器的sysex消息 一切正常,但当涉及到六进制数F7时,我的arduino读数为0。 我知道F7是247有人知道为什么会这样吗 我使用这个代码 #include <MIDI.h> void handle_sysex(byte *a,byte sizeofsysex) { Serial.println(sizeofsysex,DEC); for(int n

我已经将我的效果处理器midi连接到盾牌中的arduino midi 我正在尝试使用arduino的Midi库读取来自效果处理器的sysex消息 一切正常,但当涉及到六进制数F7时,我的arduino读数为0。 我知道F7是247有人知道为什么会这样吗

我使用这个代码

#include <MIDI.h>

void handle_sysex(byte *a,byte sizeofsysex)
{
 Serial.println(sizeofsysex,DEC);
 for(int n=0;n<sizeofsysex;n++)
{
Serial.print(a[n]);
Serial.print("  ");
}
 Serial.print('\n');
}
void setup() {
Serial.begin(9600);
// Initiate MIDI communications, listen to all channels
MIDI.begin(MIDI_CHANNEL_OMNI);    
MIDI.setHandleSystemExclusive(handle_sysex);
}
void loop() {
// Call MIDI.read the fastest you can for real-time performance.
MIDI.read();
}
#包括
void handle_sysex(字节*a,字节sizeofsysex)
{
序列号println(sizeofsysex,12月);

对于(int n=0;n这是在github上讨论过的,看起来它是由或修复的错误。处理函数的args也发生了更改,第二个arg现在是
无符号大小,允许大小超过255。

这是唯一一个错误的数字吗?还是一个值范围?如何知道发送的值?是的,它是唯一一个,我知道,因为我还连接了Midi Ox来检查arduino的读取是否正确,这可能仅仅是因为
F7
是“消息结束”字符,而它只是被转换为“字符串结束”?请参见Midi中的@Floris,0是一个有效的数据字节;转换F7将是一个可怕的错误。