mb16 发表于 2012-6-1 15:38:08

大侠们,我的PT2313怎么没有声音啊...

如题!!都说PT2313很简单,我都是按照PDF说明写程序的,怎么一点声音都没有呢!跪求各位大侠的...程序如下:我用的是MSP430F149做MCU_______
void delay()
{
    unsigned char q0;
    for(q0=0;q0<5;q0++)
    {
      _NOP();
    }
}

/**********************************************************************
启动IIC 总线
***********************************************************************/

void start()//开始信号
{
    SDA_OUT; //设置为输出
    SCL_OUT; //设置为输出
    S_SDA;   // SDA=1
    delay();
    S_SCL; //SCL=1
    delay();
    C_SDA;// SDA=0
    delay();
    C_SCL; //SCL=0
    delay();
}

/**********************************************************************
停止操作,释放IIC 总线
**********************************************************************/
void stop()   //停止
{
   SDA_OUT; //设置为输出
    SCL_OUT; //设置为输出
    C_SDA;// SDA=0
    delay();
    S_SCL; //SCL=1
    delay();
    S_SDA;// SDA=1
    delay();
    C_SCL;//SCL=0
}

/***************************************************************************
** Function name:                I2C_Write
** Descriptions:                I2C写数据并判断有无响应
** input parameters:        empData
** Output parameters:   none
** Returned value:                如果没有应答那么返回0,否则返回1
***************************************************************************/
unsigned char I2C_Write(unsigned char TempData)
{
    unsigned char Count;
    SDA_OUT;
    for ( Count = 8; Count > 0; Count -- )
    {
        C_SCL;
        delay();
      if(( TempData & 0x80 ) == 0x80)
      {
            S_SDA;   
      }
      else
      {
            C_SDA;
      }
        TempData <<= 1;
        delay();
        S_SCL;
        delay();
      delay();
    }
    C_SCL;
    delay();
    S_SDA;         //8位发送完后释放数据线,准备接收应答位
    delay();
    SDA_IN;
    for ( Count = 0xff; Count; Count -- )
    {
      if ( ! READ_SDA )
      {
               break;
      }                  
   }
   if (!READ_SDA )   //判断是否接收到应答信号
   {   
      S_SCL;
      delay();
      C_SCL;
   }
      else                  //如果没有应答那么返回0
   {
        return 0;
   }
   return 1;
}


初次接触PT2313,求到底我哪里错了啊........郁闷几天了
/*

送数据到PT2313
*/
void PT2313_Send(unsigned char data)
{
    start();
    I2C_Write(0x88);
    delay();
    I2C_Write(data);
    stop();
}

mb16 发表于 2012-6-1 15:48:38

在线等啊.............

fwluck 发表于 2012-6-1 15:59:39

测一下ACK正常吗?
如不对IIC驱动有问题。
2313输入输出电容得留神。手册也不明确。

fwluck 发表于 2012-6-1 16:00:46

例子很多,查查。

mb16 发表于 2012-6-1 16:15:13

fwluck 发表于 2012-6-1 15:59 static/image/common/back.gif
测一下ACK正常吗?
如不对IIC驱动有问题。
2313输入输出电容得留神。手册也不明确。 ...

就是因为IIC有问题才一点声音都没有啊,是一点沙沙声都没有啊...

mb16 发表于 2012-6-1 16:16:39

fwluck 发表于 2012-6-1 16:00 static/image/common/back.gif
例子很多,查查。

例子我找过了,都是调不出来的丫!所以才发帖求教啊

fwluck 发表于 2012-6-6 17:06:57

查电路吧。估计是电路了问题了。
2313不会有沙沙声的,记错了吧。
页: [1]
查看完整版本: 大侠们,我的PT2313怎么没有声音啊...