本帖最后由 fcymk2 于 2010-1-7 09:22 编辑
我现在用一颗21434 做SPI_Master, 另一颗做SPI_Slave和senser扫描
想扫描完一次senser后 把得到的数据一次全部发送到SPI_M, 扫描时间大概是15ms...
SPI_M在这15ms内发送数据后..为什么会收到0xff的返回值呢? 这时间内rxBuff应该没东西吧? 我是想让SPI_M发送数据后, 就一直等着 SPI_S扫描结束后返回数据, 现在的结果是 SPIS的扫描数据可以返回...还多返回了一堆0xff...
SPI_M代码:(我用TX输出看的数据)
while(1)
{
for (i=0; i<8; i++)
{
while (!(SPIM_bReadStatus()&SPIM_SPIM_TX_BUFFER_EMPTY));
SPIM_SendTxData( 0x00 ); //dump data
//while (!(SPIM_bReadStatus()&SPIM_SPIM_SPI_COMPLETE));
while (!(SPIM_bReadStatus()&SPIM_SPIM_RX_BUFFER_FULL));
rxData = SPIM_bReadRxData();
TX8_PutSHexByte( rxData );
TX8_PutChar(' ');
}
TX8_PutCRLF();
}
SPI_S代码:
while(1)
{
//scan senser
//... //15 ms
for (i=0; i<20; i++)
{
SPIS_EnableSS();
while (!(SPIS_bReadStatus() & SPIS_SPIS_SPI_COMPLETE));
rxData = SPIS_bReadRxData();
while (!(SPIS_bReadStatus() & SPIS_SPIS_TX_BUFFER_EMPTY));
SPIS_SetupTxData(i);
SPIS_DisableSS();
}
} |