for (byte i = 0; i < mfrc522.uid.size; i++)
{
Serial.print(mfrc522.uid.uidByte{i} < 0x10 ? " 0" : " ");
Serial.print(mfrc522.uid.uidByte{i}, HEX);
content.concat(String(mfrc522.uid.uidByte{i} < 0x10 ? " 0" : " "));
content.concat(String(mfrc522.uid.uidByte{i}, HEX));
}
I use this code to get UID of an RFID card, but the error "expected ')' before '{' token"
comes out. Does anybody know how to solve this problem?
1 Answer 1
Welcome to this site, next time use ctrl-k to align your code.
The problem is in:
Serial.print(mfrc522.uid.uidByte{i} < 0x10 ? " 0" : " ");
To get the value of an array, use [i]
, not {i}
, thus
Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
(similar to other lines).
To give some additional hints:
Try to prevent duplicated code by storing the byte into a variable. Now you can use
uidValue
in the subsequent lines.uint8_t uidValue = mfrc522.uid.uidByte[i];
Store 0x10 inside a constant.
So you get:
const uint8_t MAX_HEX_SINGLE_DIGIT_VALUE 0x0F;
for (byte i = 0; i < mfrc522.uid.size; i++)
{
uint8_t uid_byte = mfrc522.uid.uidByte[i];
Serial.print(uid_byte < LOW_VALUE <= MAX_HEX_SINGLE_DIGIT_VALUE ? " 0" : " ");
Serial.print(uid_byte, HEX);
content.concat(String(uid_byte < MAX_HEX_SINGLE_DIGIT_VALUE ? " 0" : " "));
content.concat(String((uid_byte, HEX));
}
I assume the Serial lines are only for debugging, otherwise you can combine them too.
-
1Thank you very much, Michel.Tingkai Yan– Tingkai Yan2020年11月23日 09:32:52 +00:00Commented Nov 23, 2020 at 9:32
-
3Michel, if you answer a syntax error question, then at least without syntax errors. I thought you agreed that syntax error questions shouldn't be answered.2020年11月23日 12:26:35 +00:00Commented Nov 23, 2020 at 12:26
-
2they will reject a syntax error question. it is off-topic on SO2020年11月23日 12:31:29 +00:00Commented Nov 23, 2020 at 12:31
-
1to ask a question for every syntax error is not a way to learn codding. a codding course is a much better way2020年11月23日 17:57:08 +00:00Commented Nov 23, 2020 at 17:57
-
1@Juraj .. However, at least instead of answering a duplicate question could be found. Although I hope if the OP stays interested he will do a course, or at least find out how C(++) syntax works.Michel Keijzers– Michel Keijzers2020年11月23日 21:05:42 +00:00Commented Nov 23, 2020 at 21:05
[
,]
) instead of curly brackets. Replace all instances of{i}
with[i]
and you will be good to go.