| HC-05 腳位 | 單片機腳位 | 說明 |
|---|---|---|
| VCC | 3.3V/5V | 供電(模塊帶 LDO 通常支持 5V) |
| GND | GND | 共地 |
| TXD | RXD (P3.0) | 模塊發送 → 單片機接收 |
| RXD | TXD (P3.1) | 單片機發送 → 模塊接收(需分壓 3.3V) |
| EN/KEY | 懸空或高電平 | AT 模式配置時拉高 |
| STATE | 懸空 | 連接狀態指示 |
上電前拉高 EN/KEY 進入 AT 命令模式(波特率 38400),可配置名稱、密碼、角色。配置完成後斷電重啟自動進入透傳模式,無需保持 EN 高電平。
// 串口中斷接收
uchar cmd[10];
uchar idx = 0;
void UART_ISR() interrupt 4 {
if (RI) {
RI = 0;
char c = SBUF;
if (c == '\n') {
cmd[idx] = '\0';
processCommand(cmd);
idx = 0;
} else {
cmd[idx++] = c;
}
}
}
void processCommand(uchar* cmd) {
// 格式: "RELAY,1,ON" 或 "ALL,OFF"
if (strncmp(cmd, "RELAY,", 6) == 0) {
int ch = cmd[6] - '0';
if (strstr(cmd, "ON")) RELAY_ON(ch);
else if (strstr(cmd, "OFF")) RELAY_OFF(ch);
} else if (strcmp(cmd, "ALL,ON") == 0) {
RELAY_ALL_ON();
} else if (strcmp(cmd, "ALL,OFF") == 0) {
RELAY_ALL_OFF();
}
}
使用藍牙串口調試助手(如「Bluetooth Terminal」)發送 ASCII 指令即可控制。