打印
[STC单片机]

关于CS5460A的STC89C58RD+驱动问题

[复制链接]
925|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
bmfw|  楼主 | 2016-3-26 19:48 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 bmfw 于 2016-3-26 19:50 编辑

近日小弟用STC89C58RD+(系统时钟是11.0592MHz)单片机读写CS5460A,读出来的数据一直不对,不知道驱动程序哪里出了问题。麻烦各位大虾帮忙看看。
static void Delay2us()
{
  nop();nop();
}
static void WriteCS5460Byte(unsigned  char temp)
{
  unsigned char i;
  CS5460A_SCLK=0;
  for (i=0;i<8;i++)//循环8次写入数据
  {
    CS5460A_SCLK=0;
    if(temp&0x80){CS5460A_SDI=1;}
    else{CS5460A_SDI=0;}
        temp<<=1;//左移一位
    //CS5460A_SDI=(temp&0x80)>>7;
    CS5460A_SCLK=1;nop();   
  }
  CS5460A_SCLK=0;
}
void WriteCS5460A(unsigned char *buff,unsigned char n)
{
  unsigned char i;
  CS5460A_SCLK=0;  
  CS5460A_CS_N=1;
  Delay2us();
  CS5460A_SCLK=1;
  CS5460A_CS_N=0;  
  Delay2us();
  CS5460A_SCLK=0;
  Delay2us();
  for(i=0;i<n;i++)
  {
    WriteCS5460Byte(*(buff+i));
  }
  nop();nop();
  CS5460A_CS_N=1;
}
static unsigned char ReadCS5460Byte()
{
  uchar i=0x00;
  uchar j=0xfe;
  uchar Byte=0x00;
  bit bTemp;
  for(i=0;i<8;i++)//循环8次写入数据
  {
    CS5460A_SDI=(bit)(j&0x80);
    CS5460A_SCLK=1;Delay2us();
    CS5460A_SCLK=0;Delay2us();
    bTemp=CS5460A_SDO;
    Byte=Byte|bTemp;
        if(j!=7){Byte=Byte<<1;j=j<<1;};
  }
  return(Byte);
}
void CS5460A_Read(unsigned char address,unsigned char *buff)
{
  unsigned char i;
  CS5460A_SCLK=0;
  CS5460A_CS_N=1;Delay1us(10);  
  CS5460A_CS_N=0;  
  WriteCS5460Byte(address);
  for(i=0;i<3;i++)
  {
    *(buff+i)=ReadCS5460Byte();
  }
  CS5460A_CS_N=1;
  CS5460A_SCLK=1;Delay2us();CS5460A_SCLK=0;
}
void test()
{
  CS5460A_RST_N=0;//复位
  Delay1ms(15);;//15ms至少10ms
  CS5460A_RST_N=1;

  buff[0]=0xff;//SYNC1
  buff[1]=0xff;//SYNC1
  buff[2]=0xff;//SYNC1
  buff[3]=0xfe;//SYNC0
  WriteCS5460A(buff,4);//写三个同步1和一个同步0

  buff[0]=0x48;//电压增益寄存器写0x123456
  buff[1]=0x12;
  buff[2]=0x34;
  buff[3]=0x56;
  WriteCS5460A(buff,4);//电压通道增益寄存器   
  CS5460A_Read(0x08,buff);//读取电压增益寄存器的值,读出的数据一直不对
}

cs5460a.jpg (158.56 KB )

cs5460a.jpg

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

24

主题

86

帖子

0

粉丝