|
回复 沙发 chunyang 的帖子
unsigned long spi(unsigned long Data_send)
{ unsigned char i;
unsigned long Data_receive,j;
j=Data_send;
SCLK=0;SDI=1;
CS=0;
for(i=0;i<32;i++) //"发数据
{
if (SDI) {Data_receive=Data_receive|0x00000001; }
asm ("nop");
Data_receive=Data_receive<<1;
SCLK=1;
asm ("nop");
if (j&0x80000000){SDO=1;}
else SDO=0;
asm ("nop");
j=j<<1;
SCLK=0;
}
CS=1;
delay(2);// 延时3us
return Data_receive;
这是我写的一个模拟代码 但是有一个问题,上升沿接收的时候,SDI的上升沿总和clk的上升沿同时,这不对吧
发送正常 请指点一下 |
|