Arduino串口输入判断代码。
当串口接收到16进制消息AA 55 01 00 00 00 00 55 AA,则控制13号引脚高电平输出。
#define LED_PIN 13
byte message[9];
//byte message[9] = {0xAA, 0x55, 0x01, 0x00, 0x00, 0x00, 0x00, 0x55, 0xAA};
void setup() {
pinMode(LED_PIN, OUTPUT);
digitalWrite(LED_PIN, LOW);
Serial.begin(9600);
}
void loop() {
if (Serial.available() >= 9) { // 等待至少9个字节的数据可用
// 读取9个字节的数据
for (int i = 0; i < 9; i++) {
message[i] = Serial.read();
}
// 判断收到的消息是否符合条件
if (message[0] == 0xAA && message[1] == 0x55 && message[2] == 0x01 &&
message[3] == 0x00 && message[4] == 0x00 && message[5] == 0x00 &&
message[6] == 0x00 && message[7] == 0x55 && message[8] == 0xAA) {
digitalWrite(LED_PIN, HIGH); // 控制引脚输出高电平
for (int i = 0; i < 9; i++) { //把接收到的数据打印到串口,在串口监示器中查看
Serial.write (message[i]);
}
}
}
}