請參考,自己調試一下
void main() {
GPIO_Init();
UART_Init();
while(1); // 主循環保持空轉
}
// 串口中斷服務函數
void UART_ISR() interrupt 4 {
if (RI) {
RI = 0; // 清除接收中斷標志
// 接收字符并存入緩沖區
rxBuffer[rxIndex++] = SBUF;
// 當接收滿4個字符時處理
if (rxIndex >= 4) {
// 檢測"PASS"命令
if (memcmp(rxBuffer, "PASS", 4) == 0) {
SendString("OK");
Relay1 = 0; // 吸合繼電器1
Relay2 = 1; // 釋放繼電器2
}
// 檢測"FAIL"命令
else if (memcmp(rxBuffer, "FAIL", 4) == 0) {
SendString("NG");
Relay2 = 0; // 吸合繼電器2
Relay1 = 1; // 釋放繼電器1
}
rxIndex = 0; // 重置接收索引
}
}
} |