极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 14360|回复: 3

这串口接收数据这样写怎么跑步起来

[复制链接]
发表于 2017-7-4 09:53:58 | 显示全部楼层 |阅读模式
  一个Arduino发送数据是0x55,0x54,0x00,0x65,0x00,0xff

下面是另一个Arduino的接收程序

int rec_flag=0;
byte  serial_data;

byte hexdata[3];
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[i]=serial_data;//暂存数据
                i++;
               
            }}
         else if(rec_flag == 4)
         {   if (hexdata[1]==0x65)
             {digitalWrite(13, HIGH);  
             delay(3000);              //
             digitalWrite(13, LOW);    //
             delay(3000);
              rec_flag = 0;}      
        }
   
}}
回复

使用道具 举报

 楼主| 发表于 2017-7-4 09:55:22 | 显示全部楼层
我这样写的程序,结果小灯没亮,求各路大神指点迷津
回复 支持 反对

使用道具 举报

发表于 2017-7-4 18:42:34 | 显示全部楼层
cyqq 发表于 2017-7-4 09:55
我这样写的程序,结果小灯没亮,求各路大神指点迷津

整那么多i=0干什么。。。。你也不怕数据覆盖
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-4 22:34:04 | 显示全部楼层
zjz5717 发表于 2017-7-4 18:42
整那么多i=0干什么。。。。你也不怕数据覆盖

确实,已经改过来了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-13 13:52 , Processed in 0.041690 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表