请教个问题我用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.请大家帮我看看问题出在什么地方.
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |