• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

求大神助攻 arduino与wt5001-48l连接,串口命令无效

bimm 2015-10-06 浏览量:3219

小弟初来乍到,不懂规矩,请版主手下留情。。。

下面是小弟的问题产物。。。用的音频扩展板是wt5001-48l的芯片模块,但是在用串口控制的时候,发现不管怎么改命令,扩展板的状态从未变过,求大神帮忙看看是不是程序有问题还是哪里不对。(程序是从网上教程copy过来改的)

求大神助攻 arduino与wt5001-48l连接,串口命令无效

int value=0;
int a,b,c,d,e;
void setup()
{
  Serial.begin(9600);   // 开启串口,波特率为9600
}

int mp3_send(int code[], int length)
{
  Serial.write(0x7e);
  for (int i = 0; i < length; i++)
  {
    Serial.write(code[i]);
  }
  Serial.write(0x7e);
  
  //返回操作码
  if (Serial.available())
  {
    return int(Serial.read());
  }
  
  return 0;
}

int mp3_read()
{
  int data = 0;
  while (Serial.available() > 0)
  {
    data += Serial.read();
    delay(2);
  }  
  return data;
}

void chuangan()
{
  a=digitalRead(11);
  b=digitalRead(10);
  c=digitalRead(9); 
  d=digitalRead(6);
  e=digitalRead(5);
  if((a==1)||(b==1)||(c==1)||(d==1)&&(e==0))
  {
     value++;
  }
  else if((a==1)||(b==1)||(c==1)||(d==1)&&(e==1))
  {
     value++;
  }
}

void loop() 
{
  value=1;
    if (value==1)
    {
        //上一曲
        int code[] = {0x04,0xa0,0x00,0x01};
        mp3_send(code, 4);
    }
    else if (value == 2)
    {
        //下一曲
        int code[] = {0x04,0xa0,0x00,0x02};
        mp3_send(code, 4);
    }
    else if (value == 3)
    {
        //暂停
        int code[] = {0x02, 0xa3};
        mp3_send(code, 2);
    }
  
  delay(600);
}
 

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
所有亮答 数量:3
  • 用串口发送数据的话,需要注意数据类型转换的问题,串口接收到的数据是ASCII码,需要转换成整型的数据,你看一下是不是这个问题;

    可以先用按键代替,比如,3个按键按下分别代表1、2、3,先确保音频扩展板能成功驱动,接着再调试串口这个部分,一步一步来,不然都不知道是模块没驱动成功还是串口部分的问题。

  • 按键我试过了。。。没问题,但是串口的16进制数没发穿进去

相关问题

问题达人换一批

求大神助攻 arduino与wt5001-48l连接,串口命令无效