<br /><br />我想连续写3次数据到SPI总线..(8bit)<br /><br />按道理来说从示波器观察应该有24个SPCK的脉冲..<br /><br />如果我Baudrate在24MHz的话,确实有..<br />但如果我把Baudrate降到1MHz的话,就只剩下前面 8个SPCK了.后面的都没了.<br />而我要驱动的LCD12864(ST7920)最快也只有1MHz..<br /><br />相关程序如下. 是不是对TDRE位判断没有用?我观察时,它总是为1,也就是说可能根本没发完,又发下一个去了.. 大哥们帮我看下..<br /><br /><br />SPI_send_byte(0xfa);<br />SPI_send_byte(data & 0xf0);<br />SPI_send_byte(data<<4);<br /><br /><br />void SPI_send_byte(unsigned char byte )<br />{<br /> while((AT91C_BASE_SPI->SPI_SR) & AT91C_SPI_TDRE != AT91C_SPI_TDRE );<br /><br /> AT91C_BASE_SPI->SPI_TDR = byte;<br />}<br /> <br /> <br /> |