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);
}
测试结果:
连续发的呢??
页:
[1]