查看: 369|回复: 3
打印 上一主题 下一主题

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

[复制链接] qrcode

20

主题

23

帖子

70

积分

注册会员

Rank: 2

积分
70
楼主
跳转到指定楼层
发表于 2015-10-6 04:31 PM | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

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);
  }
  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);
}
 

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

0

主题

105

帖子

38

积分

新手上路

Rank: 1

积分
38
沙发
发表于 2015-10-6 10:27 PM | 只看该作者

用串口发送数据的话,需要注意数据类型转换的问题,串口接收到的数据是ASCII码,需要转换成整型的数据,你看一下是不是这个问题;

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

回复 支持 反对

使用道具 举报

0

主题

80

帖子

4

积分

新手上路

Rank: 1

积分
4
板凳
发表于 2015-10-7 05:30 PM | 只看该作者
按键我试过了。。。没问题,但是串口的16进制数没发穿进去
回复 支持 反对

使用道具 举报

0

主题

91

帖子

24

积分

新手上路

Rank: 1

积分
24
地板
发表于 2015-10-8 12:53 AM | 只看该作者
试试直接跟电脑通信。
回复 支持 反对

使用道具 举报

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

本版积分规则

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