大家好,我用的是Keil UV4 MDK4.0 的编译器,用STM32 的SPI接口与CC2420通信时,发现程序未做优化时(LEVEL 0),MISO能正常接收信息,优化后(LEVE03),MISO接收的信息都是错误的,不知道是什么原因,难道KEIL的优化功能正有BUG?
BYTE SPIPut(BYTE v)
{
while(!SPI_I2S_GetFlagStatus(SPI2,SPI_I2S_FLAG_TXE));
SPI_I2S_SendData(SPI2,v);
while(!SPI_I2S_GetFlagStatus(SPI2,SPI_I2S_FLAG_RXNE));
return SPI_I2S_ReceiveData(SPI2);
}
BYTE SPIGet(void)
{
while(!SPI_I2S_GetFlagStatus(SPI2,SPI_I2S_FLAG_TXE));
SPI_I2S_SendData(SPI2,0x00);
while(!SPI_I2S_GetFlagStatus(SPI2,SPI_I2S_FLAG_RXNE));
return SPI_I2S_ReceiveData(SPI2);
}
我用的是STM32103FRBT6和STM32103FZET6;SPI1和SPI2都做了试验,都存在这种问题
不知道大家谁能分析一下原因。 |