请教个问题我用51单片机模拟SPI,配置MC33594,在上电复位后,读取MC33594的三个配置寄存器值,可读到的都是FF,也就是MISO一直是高电平,为什么呀?而且我在写配置和读配置的时候到加了DELAY,找了一个星期了,还是找不到问题出在哪,配置程序如下:cr1=0x77;cr2=0xb8;cr3=0xc8; read_cr1=0x80;read_cr2=0x10;read_cr3=0x20;
void send_spi(void){ uchar i,j; uchar sebuf[3];
delay_1ms(); sebuf[0]=cr1; sebuf[1]=cr2; sebuf[2]=cr3;
sclk=0; for(j=0;j<3;j++){ for(i=8;i>0;i--){ if(sebuf[j]&0x80) mosi=1; else mosi=0; sclk=1; sebuf[j]<<=1; wait(20); sclk=0; wait(20); } } }
void read_config(void){ uchar i,j; sendbuf[0]=read_cr1; sendbuf[1]=read_cr2; sendbuf[2]=read_cr3; delay_1ms(); sclk=0; for(j=0;j<3;j++){ for(i=8;i>0;i--){ if(sendbuf[j]&0x80) mosi=1; else mosi=0; sclk=1; sendbuf[j]<<=1; wait(20); sclk=0; if(miso==1) sendbuf[j]=sendbuf[j]|0x01; wait(20); } } }
两个程序之间加了DELAY.请大家帮我看看问题出在什么地方. |