打印
[PIC®/AVR®/dsPIC®产品]

spi使用请教

[复制链接]
1154|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hbqjcqg|  楼主 | 2014-5-25 16:22 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
我的芯片用的是PIC18F25K80,想使用spi功能,程序是这样的
#include<htc.h>
unsigned char dtbdata[728];
unsigned long int i;
unsigned int a,b;
// #pragma config XINST=OFF
void spiint()
{
      INTCON=0x00;
      TRISC=0x90;
      SSPSTAT=0x80;
      SSPCON1=0x22;
}

void spiread()
{
   for(i=1;i<729;i++)
    {
    SSPBUF=0x55;
        while(!SSPIF);
        SSPIF=0;
    dtbdata[i]=SSPBUF;
    }
}
void delay( )
{
       
        for(a=6;a>0;a--)
                for(b=11;b>0;b--);
}

void main()
{
    OSCCON=0xfe;
    PIE1=0;
    spiint();
    while(1)
    {
    delay();
    spiread();
    }
}
目前我测试出的sck波形如附件所示,有没有办法让时钟连续,中间没有空闲

spi.JPG (184.7 KB )

spi.JPG
沙发
伏尔加的鱼| | 2014-5-26 11:01 | 只看该作者
中间的空闲说明传输过程是间歇性,想要无空闲的那你就连续发送或者接收

使用特权

评论回复
板凳
hbqjcqg|  楼主 | 2014-5-26 11:49 | 只看该作者
伏尔加的鱼 发表于 2014-5-26 11:01
中间的空闲说明传输过程是间歇性,想要无空闲的那你就连续发送或者接收

我这就是用循环连续发送的,中间的空闲是不是处理器运行读数据的时间

使用特权

评论回复
地板
zhimagod| | 2014-5-26 13:02 | 只看该作者
看了下你空闲时间大概是200us?
有可能是进行装载数据的时间

使用特权

评论回复
5
hbqjcqg|  楼主 | 2014-5-26 13:07 | 只看该作者
发送8位后的空闲时间有12us左右,我想要看能不能去掉这个空闲时间

使用特权

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

本版积分规则

7

主题

18

帖子

0

粉丝