打印

c51模拟SPI读AD问题求教

[复制链接]
661|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

粉丝