请参考,自己调试一下
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; // 重置接收索引
}
}
} |