林立 发表于 2012-12-19 14:01:39

IIC发送字符串【程序】

本帖最后由 林立 于 2012-12-19 14:05 编辑

小弟现在做IIC通讯,由于不是学C语言出身,所以使用阻力很大。
在两块板子通讯时,按照范例,现在只能发送单个字符,不知道怎么将主站发送的字符组合成字符串形式发送到从站,或者主站发送字符到从站组合成字符串。

要做通讯控制,肯定不可能单个字符来控制多个端口。

主站代码:#include <Wire.h>

char x;
void setup()
{
Serial.begin(9600);
Wire.begin();
}

void loop()
{
while (Serial.available() > 0){
x = Serial.read();
Wire.beginTransmission(4);
Wire.write(x);
Wire.endTransmission();
    Serial.println(x);
}
} 从站代码:#include <Wire.h>

char x;
char c;
int led = 13;

void setup()
{
pinMode(led,OUTPUT);
Wire.begin(4);
Wire.onReceive(receiveEvent); //接收事件
Serial.begin(9600);
}

void loop()
{
if(x=='k')    //当接收到字符K时,执行开灯
{
digitalWrite(led,HIGH);
}
if(x=='g'){   //当接收到字符g时,执行关灯
digitalWrite(led,LOW);
}
}

void receiveEvent(int howMany)
{
while(Wire.available() > 1)
{
    c += Wire.read();   //这一行和x=Wire.read()怎么缺一不可,少一个都无法正确输出字符!?
    Serial.print( c);}
x = Wire.read();
Serial.println( x);
}
测试结果:

学慧放弃 发表于 2013-12-9 21:49:52

连续发的呢??
页: [1]
查看完整版本: IIC发送字符串【程序】