智能车制作

标题: spi spisr寄存器中spif位 [打印本页]

作者: cdcc0606    时间: 2014-1-28 22:19
标题: spi spisr寄存器中spif位
我想知道spif一般是在发送数据的时候在给spidr复制后会变为1,还是在接收数据的时候变为1. 因为我有看到这样的代码
  1. void SPI_GetChar(U8 *pu8Char)
  2. {
  3.   while(SPI_SR_SPIF==0);
  4.   *pu8Char=SPI_DR;       
  5. }
复制代码
说明,spif是在接收数据的时候应该变为1,但是我这里完全不是。实在发送数据的时候,一旦给spidr赋值,spif就会跳成1,但是一旦赋值完成,spif就会变为0.所以我上百年那个函数,永远没有办法接收到spidr中的数据。我想问一下这是为什么

作者: cdcc0606    时间: 2014-1-29 15:24
之前那个可能没有表达清楚,我再写一遍
我想知道spif位是在发送数据时给数据寄存器SPIDR赋值后会变为1,还是在接收数据的时候变为1. 因为我有看到这样的代码
void SPI_GetChar(U8 *pu8Char)

{

  while(SPI_SR_SPIF==0);

  *pu8Char=SPI_DR;        

}
我认为这个代码说明,spif是在接收数据的时候应该变为1。但是为什么我这里接收的时候,始终跳不出while这个死循环呢?
作者: cdcc0606    时间: 2014-1-29 18:06
大家给点想法啊
作者: cdcc0606    时间: 2014-2-6 15:09
我已经开始做其他部分了,不过大家如果有什么好的想法,随时留言啊




欢迎光临 智能车制作 (http://111.231.132.190/) Powered by Discuz! X3.2