|
主控芯片是MAGE88,不过是用普通IO口模拟SPI通信
PC2接MISO,PC3接MOSI,PC4接CLK,PC5接SS
写好程序后,发现没用,不能读写,请前辈们看看问题在哪:
PC3,PC4,PC5设置输出,PC2设置输入,下面程序直接用PC2,PC3,PC4,PC5表示
void WriteByte(uchar data)
{
uchar i;
for(i=0;i<8;i++)
{
if(data&0x80) PC3=1;
else PC3=0;
PC4=1;
nop();nop();
PC4=0;
data<<=1;
}
}
uchar ReadByte()
{
uchar j,nn;
for(j=0;j<8;j++)
{
nn<<=1;
if(PC2==1) nn |= 0x01;
PC4=1;
nop();nop();
PC4=0;
}
return nn;
}
void SpiWriteByte(uchar addr,uchar data)
{
PC5=0;
PC4=0;
WriteByte(addr);
nop();nop();
WriteByte(data);
PC5=1;
}
uchar SpiReadByte(uchar addr)
{
uchar mm;
PC5=0;
PC4=0;
WriteByte(addr);
nop();nop();
mm=ReadByte();
PC5=1;
return mm;
}
还有,文档上说可以做三线SPI用,不过固件必须确保MOSI引脚处于高阻状态是什么意思???? |
欢迎继续阅读楼主其他信息
|