STM32有关SPI接口的困惑

2019-07-16 09:31发布

STM32的SPI接口SPI- gt;DR寄存器读不到数据,求各位知道的告诉一下,小弟不胜感激
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
笔画张
1楼-- · 2019-07-16 10:35
能不能形容的准确定啊
德国蟑螂
2楼-- · 2019-07-16 16:10
笔画张 发表于 2014-4-14 17:13
能不能形容的准确定啊

//串口发送口和接收口的初始化,选中并进行模式选择
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,你帮我看看问题在哪,非常感谢啊

一周热门 更多>