我正在一个项目中,我需要9个7段显示器。我为此使用了9个移位寄存器。无法更新与NodeMCU的移位寄存器
我用Arduino Nano测试了移位寄存器,并且一切正常。然后,我复制/编辑了代码,用于NodeMCU(ESP8266 wifi板),出于某种原因,写入移位寄存器的功能似乎被破坏。
这是现在的代码:
void writeBytes(uint8_t bytesToWrite[]){
Serial.println("test!!!");
//Run through the 9 bytes in bytes to write.
for(int q = 0; q < 9; q++) {
//Loop through the 8 bits.
for(int i =0; i < 8; i++) {
//Check if the msb = 1
if(0x80 & bytesToWrite[q]) {
digitalWrite(dataPin, HIGH);
delay(delayTime);
digitalWrite(clockPin, HIGH);
delay(delayTime);
digitalWrite(clockPin, LOW);
delay(delayTime);
digitalWrite(dataPin, LOW);
delay(delayTime);
} else {
digitalWrite(clockPin, HIGH);
delay(delayTime);
digitalWrite(clockPin, LOW);
delay(delayTime);
}
//Shift all the bits one up.
bytesToWrite[q] = bytesToWrite[q] << 1;
}
}
//Turn on the out pin, so it will output.
digitalWrite(outPin, HIGH);
delay(delayTime);;
digitalWrite(outPin, LOW);
delay(delayTime);
}
如果我用正确的引脚和检查,如果如果这些引脚实际上变成我已经确认。我也检查了函数是否会被执行,并且会传递正确的变量,并且它会被执行。
这个功能同样适用于Arduino Nano。但它不适用于NodeMCU。 NodeMCU具有更高的时钟频率。所以我试图加入延迟。但它没有奏效。
当您运行代码时,您在节点mcu上收到的输出是什么? – Billa
只是:测试!!!!!该程序编译并运行良好。 – oedze
接受和upvote答案,如果你认为它应该有一个在将来有类似的疑问 – Billa