STM32有关SPI接口的困惑
能不能形容的准确定啊
//串口发送口和接收口的初始化,选中并进行模式选择
void GPIO_LED_init()
{
GPIO_InitTypeDef GPIO_config;
GPIO_config.GPIO_Pin=GPIO_Pin_8|GPIO_Pin_9; //引脚选择,选择8号和9号引脚
GPIO_config.GPIO_Speed=GPIO_Speed_50MHz; //设置选中引脚速率
GPIO_config.GPIO_Mode=GPIO_Mode_Out_PP; //设置选中引脚状态——推勉输出
GPIO_Init(GPIOD,&GPIO_config); //初始化设置的引脚
}
/*******SPI接收数据********/
unsigned char SPI1_SendByte(unsigned char byte)
{
//while(SPI_I2S_GetFlagStatus(SPI1,SPI_I2S_FLAG_TXE)==RESET);
SPI_I2S_ClearFlag(SPI1,SPI_I2S_FLAG_RXNE); //清标志位
SPI_I2S_ClearFlag(SPI1,SPI_I2S_FLAG_TXE); //清标志位
SPI_I2S_SendData(SPI1,byte);
// while(SPI_I2S_GetFlagStatus(SPI1,SPI_I2S_FLAG_RXNE)==RESET);
while((SPI_I2S_GetFlagStatus(SPI1,SPI_I2S_FLAG_TXE))==RESET); //等待发送完成
while((SPI_I2S_GetFlagStatus(SPI1,SPI_I2S_FLAG_RXNE))==RESET);//等待接收完成
return SPI_I2S_ReceiveData(SPI1);
}
void LED_init()
{
RCC_init();
GPIO_LED_init();
}
/***********主函数************/
int main(void)
{
int data;
LED_init();
SPI_test();
data=SPI1_SendByte(0x5a);
if(data==0x5a)
{
while(1)
{
GPIO_SetBits(GPIOD,GPIO_Pin_8|GPIO_Pin_9);
}
}
}
这是我程序的部分
在这个程序中,最后data总是得不到要发送的数据
也就是0x5a,一直都是0,你帮我看看问题在哪,非常感谢啊