我正在尝试使用 arduino mega 对 8 位寄存器进行编程,但是当我将程序发送到 arduino 时,出现此错误。我检查了我的代码,但没有看到任何可能导致错误的内容。 代码:
//Qh´ used for daisychain. Can connect to other register to store value of 7(in shift register) into 0(in shift register).
//High = ouputs DISABLED, low = ouputs ENABLED(reverse)
const int outputEnable = 0;
//All outputs(in storage register)
const int r0 = 1;
const int r1 = 2;
const int r2 = 3;
const int r3 = 4;
const int r4 = 5;
const int r5 = 6;
const int r6 = 7;
const int r7 = 8;
//input for 0. Serial clock MUST be HIGH
const int input = 9;
//High = bits move 1 to left + 0 accept input, low = next action
const int serialClock = 10;
//all serial values = 0
const int reset = 11;
//High = copy shift to storage, low = none
const int registClock = 12;
int i = 0;
void setup() {
// put your setup code here, to run once:
pinMode(outputEnable, OUTPUT);
pinMode(r0, INPUT);
pinMode(r1, INPUT);
pinMode(r2, INPUT);
pinMode(r3, INPUT);
pinMode(r4, INPUT);
pinMode(r5, INPUT);
pinMode(r6, INPUT);
pinMode(r7, INPUT);
pinMode(input, OUTPUT);
pinMode(serialClock, OUTPUT);
pinMode(reset, OUTPUT);
pinMode(registClock, OUTPUT);
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
int i = 0;
while(i<5) {
digitalWrite(outputEnable, 0);
digitalWrite(serialClock, 0);
digitalWrite(serialClock, 1);
digitalWrite(input, 1);
digitalWrite(serialClock, 0);
digitalWrite(serialClock, 1);
digitalWrite(input, 0);
i += 1;
}
digitalWrite(registClock, 1);
digitalWrite(registClock, 0);
digitalWrite(reset, 1);
digitalWrite(reset, 0);
Serial.write(r0);
Serial.write(r1);
Serial.write(r2);
Serial.write(r3);
Serial.write(r4);
Serial.write(r5);
Serial.write(r6);
Serial.write(r7);
}
错误:
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_setparm(): failed to set parameter 0x9e
avrdude: stk500v2_recv(): checksum error
avrdude: stk500v2_getsync(): can't communicate with device: resp=0x01
avrdude: stk500v2_command(): unknown status 0xc8
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.
avrdude: stk500v2_command(): unknown status 0x01
avrdude: stk500v2_disable(): failed to leave programming mode
Failed uploading: uploading error: exit status 1
我尝试重新启动开发板、计算机并更改电缆所在的端口。我什么也没做。我使用的是 Windows 11。
我解决了。我不知道为什么会这样,但现在可以了。