| 做了一个SPI与74HC595进行数码管显示, 
 但是在发送数据时,出现了一个怪事:
 
 SPI_CR1=0B11000110;
 SPI_CR2=0B11000011;
 SPI_ICR=0B00000000;
 SPI_DR=0x00;
 for(A=0;A<2;A++)
 {_asm("nop");}
 
 
 while(SPI_SR & 0x02 == 0);
 PD_ODR|=0B0001000;
 _asm("nop");
 PD_ODR&=0B1110111;
 
 问题如下:
 SPI_DR=0x00;
 后面必须加延时,否则出错。
 for(A=0;A<2;A++)
 {_asm("nop");}
 看了几遍数据手册,也没提到延时,这是为什么呢,
 在此加了延时,就正常了!
 
 
 
 _asm("nop");
 |