我是用I/O口模拟SPI的.现在发现连寄存器也写不入,读不出啊!!
我的SPI摸拟程序(MCU晶振用MSP430的DCO 16MHZ):
void SPI_SEND_ONE_DATA(uchar i) //SPI发一个字节
{
uchar loop;
uchar delay;
uchar temp;
temp = 0x01;
for(loop = 0; loop < 8; loop++)
{
if((i & (temp << loop)))
DIN_1;
else
DIN_0;
SCLK_1;
for(delay = 5;delay > 0; delay--);
SCLK_0;
for(delay = 5;delay > 0; delay--);
}
for(delay = 20;delay> 0; delay--);
}
uchar SPI_READ_ONE_DATA(void) //SPI收一个字节
{
uchar loop;
uchar delay;
uchar temp;
uchar i;
for(loop = 0; loop < 8; loop++)
{
SCLK_1;
for(delay = 5; delay > 0; delay--);
temp = P1IN;
if((temp & 0x08))
i = (i | 0x01) << 1;
else
i = i << 1;
SCLK_0;
for(delay = 5;delay > 0; delay--);
}
// for(delay = 20;delay > 0; delay--);
return i;
}
|