返回

在两个arduino微控制器上使用i2c通信发送字符串

发布时间:2022-04-22 04:48:37 199

我使用两个arduino mcu连接两行LED矩阵显示屏。我尝试使用i2c通信连接主mcu(控制LED矩阵显示屏的第一行)和从mcu(控制LED矩阵显示屏的第二行)。我需要将一个字符串数据(由300个字符组成)从主机传递到从机,这样我就可以在LED矩阵显示屏的第二行显示相同的字符串。

问题是,我不能用Wire传递字符串变量。从主人读到奴隶。我的解决方案是在使用wire之前将字符串转换为字符。read()来传输数据,但从机无法接收整个字符串,只能接收前几个字符。我在显示器的计时上也有问题,LED矩阵的第二行(由从机控制)很晚才显示字符串。

这是主mcu的示例代码

//Master Code

String inData;
String LED_DATA;
char buf[300];
void Input(void){ 
while(Serial.available() > 0)
 {

 char received = Serial.read();
 inData+=received;

 if(received == '~')
 {

     LED_DATA = inData; 
     inData.toCharArray(buf,300);   

     Wire.beginTransmission(5);
     Wire.write(buf);
     Wire.endTransmission(); 

}

}

}

这是从机的示例代码

//slave

char LED_DATA[100];

void setup(){        
Wire.begin(5);
Wire.onReceive(receiveEvent);
}

void receiveEvent(int howMany){
 while(Wire.available()){ 
 LED_DATA[300] = Wire.read();
 }

}

我不熟悉arduino和微控制器。解决我的问题最简单的方法是什么?非常感谢你。

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(1)
按点赞数排序
用户头像
相关帖子
下一篇
Asp.net GridView启用行选择 2022-04-22 03:41:06