这串口接收数据这样写怎么跑步起来
一个Arduino发送数据是0x55,0x54,0x00,0x65,0x00,0xff下面是另一个Arduino的接收程序
int rec_flag=0;
byteserial_data;
byte hexdata;
void setup() {
Serial.begin(9600);
pinMode(13, OUTPUT);
}
void loop() {
static int i;
if (Serial.available() > 0) //判断串口缓冲器是否有数据装入
{
serial_data = Serial.read();//读取串口
if(rec_flag==0)
{
if(serial_data==0x55)//第一次获取到0xff(即包头)
{
rec_flag = 1;
i=0;
// delay(10);
}
}
else if((rec_flag==1)&&(serial_data==0x54))
{
rec_flag = 2;
}
else if(rec_flag==2)
{
rec_flag = 3;
i = 0;
}
else if(rec_flag == 3)
{
if(serial_data==0xff)//第二次获取到0xff(即包尾)
{
rec_flag = 4;
i = 0;
}
else
{
hexdata=serial_data;//暂存数据
i++;
}}
else if(rec_flag == 4)
{ if (hexdata==0x65)
{digitalWrite(13, HIGH);
delay(3000); //
digitalWrite(13, LOW); //
delay(3000);
rec_flag = 0;}
}
}} 我这样写的程序,结果小灯没亮,求各路大神指点迷津 cyqq 发表于 2017-7-4 09:55
我这样写的程序,结果小灯没亮,求各路大神指点迷津
整那么多i=0干什么。。。。你也不怕数据覆盖 zjz5717 发表于 2017-7-4 18:42
整那么多i=0干什么。。。。你也不怕数据覆盖
确实,已经改过来了
页:
[1]