標(biāo)題:
Arduino問題 關(guān)于firmata串口發(fā)送數(shù)據(jù)
[打印本頁]
作者:
ansot
時(shí)間:
2023-12-22 15:13
標(biāo)題:
Arduino問題 關(guān)于firmata串口發(fā)送數(shù)據(jù)
使用StandardFirmata實(shí)例可以將PC的數(shù)據(jù)反映到開發(fā)板上的引腳上亮燈,但是我想把開發(fā)板上的這個(gè)結(jié)果通過串口發(fā)送到另外的開發(fā)板上。比如PC發(fā)送的數(shù)值為2和4,在接到的開發(fā)板通過串口將2和4發(fā)送出去。一個(gè)設(shè)計(jì),卡在這了,哪為大能可以給解決一下,代碼改了很多回, 不是串口不輸出數(shù)據(jù),就是輸出的數(shù)據(jù)不對。
123 Hc12
PC————StandardFirmata——-----nano1
nano2
nano3
void loop()
{
byte pin, analogPin;
/* DIGITALREAD - as fast as possible, check for changes and output them to the
* FTDI buffer using Serial.print() */
checkDigitalInputs();
/* STREAMREAD - processing incoming messagse as soon as possible, while still
* checking digital inputs. */
while (Firmata.available())
Firmata.processInput();
// TODO - ensure that Stream buffer doesn't go over 60 bytes
currentMillis = millis();
if (currentMillis - previousMillis > samplingInterval) {
previousMillis += samplingInterval;
/* ANALOGREAD - do all analogReads() at the configured sampling interval */
for (pin = 0; pin < TOTAL_PINS; pin++) {
if (IS_PIN_ANALOG(pin) && Firmata.getPinMode(pin) == PIN_MODE_ANALOG) {
analogPin = PIN_TO_ANALOG(pin);
if (analogInputsToReport & (1 << analogPin)) {
Firmata.sendAnalog(analogPin, analogRead(analogPin));
}
}
}
// report i2c data for all device with read continuous mode enabled
if (queryIndex > -1) {
for (byte i = 0; i < queryIndex + 1; i++) {
readAndReportData(query[i].addr, query[i].reg, query[i].bytes, query[i].stopTX);
}
}
}
#ifdef FIRMATA_SERIAL_FEATURE
serialFeature.update();
#endif
}
復(fù)制代碼
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1