fix(core): 修复无延时发送两次 Ctrl + C 可能导致k210板卡串口无响应

This commit is contained in:
王立帮
2025-04-17 23:35:07 +08:00
parent d90453ecd9
commit 33a6542679

View File

@@ -95,7 +95,9 @@ class AmpyExt extends Ampy {
async interrupt(timeout = 1000) {
for (let i = 0; i < 5; i++) {
// 中断两次
await this.#device_.sendBuffer([3, 3]);
await this.#device_.sendBuffer([0x0D, 0x03]);
await this.#device_.sleep(100);
await this.#device_.sendBuffer([0x03]);
await this.#device_.sleep(100);
if (await this.readUntil('>>>', true, timeout)) {
return true;
@@ -106,7 +108,7 @@ class AmpyExt extends Ampy {
async enterRawREPL(timeout = 1000) {
for (let i = 0; i < 5; i++) {
await this.#device_.sendBuffer([1]);
await this.#device_.sendBuffer([0x01]);
await this.#device_.sleep(100);
if (await this.readUntil('raw repl; ctrl-b to exit', true, timeout)) {
return true;
@@ -116,7 +118,7 @@ class AmpyExt extends Ampy {
}
async exitRawREPL(timeout = 5000) {
await this.#device_.sendBuffer([2]);
await this.#device_.sendBuffer([0x02]);
await this.#device_.sleep(100);
let succeed = false;
if (await this.readUntil('>>>', true, timeout)) {
@@ -126,7 +128,7 @@ class AmpyExt extends Ampy {
}
async exitREPL(timeout = 5000) {
await this.#device_.sendBuffer([4]);
await this.#device_.sendBuffer([0x04]);
await this.#device_.sleep(100);
let succeed = false;
if (await this.readUntil('soft reboot', false, timeout)) {
@@ -155,7 +157,7 @@ class AmpyExt extends Ampy {
await this.#device_.sleep(10);
}
}
await this.#device_.sendBuffer([4]);
await this.#device_.sendBuffer([0x04]);
return await this.follow(timeout);
}
@@ -184,7 +186,7 @@ class AmpyExt extends Ampy {
this.#active_ = true;
await this.#device_.open(115200);
await this.#device_.sleep(500);
await this.#device_.sendBuffer([2]);
await this.#device_.sendBuffer([0x02]);
if (!await this.interrupt()) {
throw new Error(Msg.Lang['ampy.interruptFailed']);
}