我的 Arduino 代码上的 Serial.read() 命令有问题。我将它连接到两个连接到 LED 的 74HC595 移位寄存器。
我检查是否有串行数据,然后读取两个字节。然后将这些字节传递给将它们都移出的方法。例如,当我使用 Serial.print 检查字节以将它们打印到串行监视器时
49
255
50
255
为什么我得到两个 255 我已经阅读了 arduino.cc 上的文档,它说它只读取一个字节。有任何想法吗?
最终目标是读取串行线上的两个字节并将它们移出到移位寄存器的 IE 是十进制 5 和 6 的字节值通过了第一个第三个 LED 将在一个移位寄存器上点亮然后第二个和第三个将在其他移位寄存器
const int dataPin = 8;
const int latchPin = 9;
const int clockPin = 10;
void setup() {
Serial.begin(9600);
}
void loop() {
if (Serial.available() > 0) {
byte low = Serial.read();
byte high = Serial.read();
Serial.println(low);
Serial.println(high);
sendBytes(low,high);
}
}
void sendBytes(byte l, byte h) {
digitalWrite(latchPin,LOW);
shiftOut(dataPin,clockPin,MSBFIRST,l);
shiftOut(dataPin,clockPin,MSBFIRST,h);
digitalWrite(latchPin,HIGH);
}