打印

AT91SAM7S SPI的问题~

[复制链接]
2242|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Swd21ic|  楼主 | 2007-3-30 12:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式


我想连续写3次数据到SPI总线..(8bit)

按道理来说从示波器观察应该有24个SPCK的脉冲..

如果我Baudrate在24MHz的话,确实有..
但如果我把Baudrate降到1MHz的话,就只剩下前面 8个SPCK了.后面的都没了.
而我要驱动的LCD12864(ST7920)最快也只有1MHz..

相关程序如下. 是不是对TDRE位判断没有用?我观察时,它总是为1,也就是说可能根本没发完,又发下一个去了..  大哥们帮我看下..


SPI_send_byte(0xfa);
SPI_send_byte(data & 0xf0);
SPI_send_byte(data<<4);


void SPI_send_byte(unsigned char byte )
{
  while((AT91C_BASE_SPI->SPI_SR) & AT91C_SPI_TDRE != AT91C_SPI_TDRE );

  AT91C_BASE_SPI->SPI_TDR =  byte;
}
 
 

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

71

主题

781

帖子

1

粉丝