No.89408 作者:可乐泡饭 邮件:yangrong2001@hotmail.com ID:48024 登陆:1次 文章数:1篇 最后登陆IP:61.155.219.39 最后登陆:2006/3/2 13:12:27 注册:2006/2/26 10:48:56 财富:105 发帖时间:2006/2/26 11:03:12 发贴者IP:222.93.43.116 标题:可乐泡饭:用I/O口接受模拟SPI发送过来的数据的程序是否有问题(请指错) 摘要:No.89408用I/O口接受模拟SPI发送过来的数据的程序是否有问题(请指错) 我把我用I/O口来接受以模拟SPI形式发送的数据的程序贴上来,请各位大虾指点错误,先说明我这部分只是接受数据,然后来显示,无发送(单工的) 为了让大家更好理解,我先贴主机数据是如何发送滴:) DISD[]数组为存放的数据,此程序发送5个数据,每个数据只发送6位而不是8位 P2B=0x10; //P2B是8255的B口,以B口的位4做CS片选 for(i=0;i <5;i++){ for(j=0;j <6;j++){ a=_cror_(DISD[i],2); //右移两位 P2B=((a&0x08)|0x04); //B口的位3为SDA,位2为SCK nop(50); P2B=(a&0x08); DISD[i]=_crol_(DISD[i],1); //左移一位 } P2B=0x10; //关片选CS,CS低有效 以上为主机发送的关键部分 接下来就是我写的接受部分啦(请指错) void rece(void) //模拟PSI接受 { while(!RA1){;} //RA1接CS片选,等待CS下降沿 while(RA1){;} //所有串行数据传输开始于CS下降沿 for(i=0;i <5;i++) //一次发送5数据 { for(j=0;j <6;j++) //一个数据6位 { while(RB0){;} ......
>>返回讨论的主题
|