labview和arduino的串口通讯问题

2019-07-17 15:17发布

学习新人,最近在做一个项目,需要先做一些小实验,就是测力,用labview和arduino配合,结果产生的波形是这个样子的,还有就是串口名称每次都是不一样的(如下图)有时还找不到串口,显示错误,搞了一下午没头绪,有没有大神帮忙解答一下!
arduino程序如下:
#define shenchu 0x01   //伸出推杆命令
#define shouhui 0x02   //收回命令
#include <HX711.h>
byte comdata[3]={0};
HX711 hx(9, 10, 128, 0.013741927);
void receive_data(void);
void test_data(void);
void read_f(void);
double a;
double sum1 = 0;


void setup()
{
  pinMode(5,OUTPUT);
  pinMode(6,OUTPUT);
  pinMode(7,OUTPUT);
  Serial.begin(9600);
  hx.set_offset(15960);

}

void loop()
{
  read_f();
  while (Serial.available() > 0)   //不断检测串口是否有数据
   {
        receive_data();            //接受串口数据
        test_data();
   }
}

void read_f(void)
{
  //delay(100);
  for (int i = 0; i < 10; i++)
  {
    sum1 += hx.bias_read();
  }
  a = sum1/10/1000*9.8;
  Serial.println(a);
}

void receive_data(void)
{
   int j ;
   for(j=0;j<3;j++)
   {
      comdata[j] =Serial.read();
      //延时一会,让串口缓存准备好下一个字节,不延时可能会导致数据丢失,
       delay(2);
   }
}
void test_data(void) //验证命令的正确性
{
  if(comdata[0] == 0x11)            //0x11和0x22均为判断是否为有效命令
   {
     if(comdata[1] == 0x22)
     {
        switch(comdata[2])
        {
          case shenchu:
          {
              delay(100);

          }
          case shouhui:
          {
              delay(100);
              digitalWrite(5,0);
              digitalWrite(6,0);
              digitalWrite(7,1);            
          }
      }
     }
   }
}


TIM图片20171102204657.png
TIM图片20171102204142.png
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。