我用的是MC9S08DZ16芯片和CJ125进行SPI通讯,我将命令存入SPID寄存器,然后等待SPRF位置1,然后读取SPID寄存器值,为什么读到的还是我发送的命令
void init_spi(){ SPIC2=0x10; SPIS=0xB0; SPIBR=0x70; SPIC1=0x5e; }
void WriteOneChar(uchar dat) { while(!SPIS_SPTEF); SPID=dat; }
void ReadOneChar(uchar cmd,uchar comdlength) { uchar i; i=0; WriteOneChar(cmd); while(i<comdlength){ WriteOneChar(0x00); while(SPIS_SPRF!=1); buffer=SPID; i++; } }
void main(){ delay_50ms(2); init_spi(); ReadOneChar(0x6c,1); while(1){ 显示buffer[0]的值
}
}
我读到的buffer[0]一直是我发送的6c,也就是108
|