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