问题描述
我正在使用rs485在两个Arduino nano之间进行通信。我已经将4位I2C显示器连接到Arduino nano之一。当Nano通过Rs485从主Nano接收数据时,数据将显示在I2C显示屏上。但是问题是我只能使用其中一种功能,即如果我正在接收数据,则无法在I2C显示器上显示它,而如果我正在显示,那么我将无法接收数据。 有人尝试过一起做吗?
主纳米的代码
// rs485 master
void setup() {
Serial.begin(115200);
pinMode(2,OUTPUT); //DE/RE pin
}
int i;
String s = "s1b01n01";
void loop() {
digitalWrite(2,HIGH); // high for transmiting
for(i=0;i<=8;i++) {
Serial.print(s[i]);
}
digitalWrite(2,LOW);
}
奴隶纳米代码
#include <TM1637display.h>
#define CLK 4
#define dio 16
#define ExtEnable 2 //DE/RE pin
TM1637display display = TM1637display(CLK,dio); // Create display object of type TM1637display:
const uint8_t data[] = {0xff,0xff,0xff};// Create array that turns all segments on:
const uint8_t blank[] = {0x00,0x00,0x00}; // Create array that turns all segments off:
int i = 0;
char add[8],c;
char address[] = {'s','1','b','0','n','1'};
void setup() {
Serial.begin(115200);
pinMode(ExtEnable,OUTPUT); //DE/RE pin
display.clear();
delay(1000);
display.setBrightness(7); // Set the brightness:
}
void loop() {
digitalWrite(ExtEnable,LOW); // low for receiving
if (Serial.available()) {
c = Serial.read();
Serial.print(c);
add[i] = c;
i++;
digitalWrite(ExtEnable,HIGH);
//display.showNumberDec(3); //print on display
}
Serial.print("add");
Serial.println(add);
if(add == address) { // to check
display.showNumberDec(3); //print on display
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)