Никак не могу победить работу с SPI в режиме slave в LPC2368, ниже приведен код, вроде должен работать, но все время вычитавает 0xFF, мастер настройл на работу 1 МГц, slave тоже на 1 МГц, в чем засада не пойму, помогите пожалуйста.
Код
int SPIInit( void )
{
TxCounter = 0;
PCONP |= (1 << 8);
S0SPCR = 0x800;
PINSEL0 |= BIT30 | BIT31;
PINSEL1 |= BIT0 | BIT1 | BIT2 | BIT3 | BIT4 | BIT5;
S0SPCCR = 0x90;
return 0;
}
BYTE SPIReceiveByte( void )
{
BYTE data;
S0SPDR = 0xFF;
while ( !(S0SPSR & SPIF) );
data = S0SPDR;
return ( data );
}
int main(void)
{
char Buf[100];
BSP_Init();
Uart_Init(115200);
SPIInit();
while(1)
{
SPIReceive(Buf,0x01);
printf("%02X \r\n",Buf[0]);
}
}
Сообщение отредактировал aaarrr - Aug 20 2010, 14:35
Причина редактирования: Оформление цитаты исходника