1
這是Arduino功能sscanf()
的一個奇怪問題。如果1字節值(bool
,byte
,char
)跟在其後面,它會將掃描的整數值的最後一個字節清零(int
,long
)。在Arduino上使用sscanf()對最後一個字節進行清零
int someInt;
byte someByte;
void setup() {
Serial.begin(9600);
sscanf("10000 10", "%d %d", &someInt, &someByte);
Serial.println(someInt); // 9984 (0x2700 not 0x2710)
Serial.println(someByte); // 10
sscanf("7FFF F", "%x %x", &someInt, &someByte);
Serial.println(someInt, HEX); // 7F00 (not 7FFF)
Serial.println(someByte, HEX); // F
}
void loop() {
// Some code what uses someInt and someByte
}
如果在setup()
中聲明的someInt
一切正常。
我嘗試了兩種不同的Arduinos,結果是一樣的。爲什麼會發生?
您是否嘗試過'的sscanf( 「7FFF F」, 「%04X%X」,與someInt,與someByte);'? –
請添加'loop()'的代碼 –
給出1字節緩衝區的字節地址,其中預期2字節的緩衝區看起來很糟糕。如果語言是C,*未定義行爲*將被調用。 – MikeCAT