打印
[国产单片机]

使用硬件SPI读取A/D cs5513芯片问题

[复制链接]
922|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xu0801hua|  楼主 | 2015-10-23 11:04 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 xu0801hua 于 2015-11-3 22:08 编辑

有谁使用过STC15单片机的硬件SPI程序,读取A/D芯片程序;
下面是我写的有问题:
void Spi_Init()
{
   AUXR1 &= 0xDF;        //SPI配置在P1口
   IE2 &=  0xFD;                //禁止SPI中断
   SPCTL = 0xD1;
}
/****************************************************************************
*    函数原型: uchar SR_Spi (uchar send_char)
*    功    能:         查询方式,SPI发送接受一个字节数据
*****************************************************************************/
INT8U SR_Spi_1 ()
{
//   SPSTAT = 0xC0;
//  
unsigned char send_char;
   while (!(SPSTAT&0x80));
    send_char= SPDAT;
   return send_char;
}
/******************************************************
*函数原型: Send_Spi (uchar send_char)
*功    能:         查询方式,SPI接收CS5513AD质
*******************************************************/
unsigned int ADC_CS5513()
{
unsigned long AD_data;
//unsigned int  AD_1,AD_2,AD_3;
unsigned char AD_value,i;
for(i=0;i<3;i++)
{
  AD_value=SR_Spi_1(0);
  AD_data=AD_value;
  AD_data<<=8;
}
  AD_data=AD_data/*&0xFfff*/;

return AD_value;
}
void main()
{
unsigned int i,daa[8];
  I_init452 ();
  Spi_Init        ();
while(1)
{
   daa[0]=ADC_CS5513();
  for(i=4;i>0;i--)
  {
   dis=daa[0]%10;
   daa[0]/=10;
  }
  DISP_all(0,dis,8);
}
delayms(1500);
}
请帮忙看看;出现问题是我采用只读,等待“ while (!(SPSTAT&0x80));”出一个字节结果;现在就是一直在等待,出不了结果显示不出值;

QQ图片20151103220019.png (15.09 KB )

QQ图片20151103220019.png

相关帖子

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

本版积分规则

34

主题

81

帖子

1

粉丝