c51模拟SPI读AD问题求教

[复制链接]
993|3
 楼主| lbb_1112 发表于 2015-12-16 11:08 | 显示全部楼层 |阅读模式
本帖最后由 lbb_1112 于 2015-12-16 11:15 编辑

c51单片机用SPI模拟读MAX191这个AD,出来全是0,程序:

uint Max191(void)
{
    char i;
    uint buff=0;
  
        Max191_clk=1;
        Max191_cs=1;
        delay_key(1);
        _nop_();
        _nop_();
        _nop_();
        _nop_();  
    Max191_cs=0;
          delay_key(1);
        Max191_clk=1;
    for(i=0;i<16;i++)
    {         
        buff<<=1;
        Max191_clk=1;
                delay_key(1);
        buff|=Max191_do;               
        Max191_clk=0;
                delay_key(1);                              
    }
    Max191_cs=1;
  //  buff=buff>>3;
        buff&=0x0fff;
return buff;
}
while(1)
{
   aa=Max191();
   b[0]=0xff;
   b[1]=aa/256;
   b[2]=aa%256;
  txdd(b,3);
delay_key(2 );       
}


ningling_21 发表于 2015-12-16 12:00 | 显示全部楼层
你的程序输出的SPI的数据线波形和芯片资料里的波形一致吗
 楼主| lbb_1112 发表于 2015-12-16 12:24 | 显示全部楼层
本帖最后由 lbb_1112 于 2015-12-16 12:35 编辑
ningling_21 发表于 2015-12-16 12:00
你的程序输出的SPI的数据线波形和芯片资料里的波形一致吗
SCLKout上只有第一个高是5V其他都是2V不到~~MAX191是串并都可以用的,并口的时候有个SLCK,在串口的时候 要不要把SCLKout接到那个时钟上去?资料上有这样一句话
The data is available at DOUT on the rising edge of SCLK (SCLKOUT
when using an internal clock) and transitions on the
falling edge
另外那个for循环对吗?

 楼主| lbb_1112 发表于 2015-12-16 12:47 | 显示全部楼层
lbb_1112 发表于 2015-12-16 12:24
SCLKout上只有第一个高是5V其他都是2V不到~~MAX191是串并都可以用的,并口的时候有个SLCK,在串口的时候 要 ...

已解决,要把串口的时钟接到芯片的时钟上去·~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

54

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部