我想把LPC2210的SPI做从机,接收和发送函数都是按照《ARM嵌入式基础教程》里给的例子: 发送函数:void SPISendByte( uint8 data ) { S1PDR = data; while( 0 == (S1PSR&0x80) ); } 接收函数:uint8 SPIRcvByte( void ) { while( 0 == (S1PSR&0x80) ); return (S1PDR); } 每次发送一个字节后,S1PSR的SPIF位会置位。按照书上所说,当读取S1PSR寄存器后,SPIF位会清零。 uint8 ch; ch = S1PSR; 但是这样操作后,SPIF位并没有清零。不知道是怎么回事?有没有那位大侠遇到过类似的情况?
|