这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » SPI存储器W25X16,Debug时卡在SPI_I2S_GetFlagStat

共1条 1/1 1 跳转至

SPI存储器W25X16,Debug时卡在SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE

助工
2013-02-28 12:40:08     打赏

Debug时停滞了。但是,在编译烧进板子后,串口输出一切正常。表明是成功编译执行程序的。不知是为什么,请高手多多指教。

想看看W25X16这个程式怎么硬件SPI实现的。结果Debugs时,卡在这里:
u32 SPI_FLASH_ReadDeviceID(void)
{
  u32 Temp = 0;
  /* Select the FLASH: Chip Select low */
  SPI_FLASH_CS_LOW();
  /* Send "RDID " instruction */
  SPI_FLASH_SendByte(W25X_DeviceID);  //   读ID
  SPI_FLASH_SendByte(Dummy_Byte);
  SPI_FLASH_SendByte(Dummy_Byte);
  SPI_FLASH_SendByte(Dummy_Byte);
  
  /* Read a byte from the FLASH */
  Temp = SPI_FLASH_SendByte(Dummy_Byte);
  /* Deselect the FLASH: Chip Select high */
  SPI_FLASH_CS_HIGH();
  return Temp;
}
u8 SPI_FLASH_SendByte(u8 byte) //调用这个函数
{
  /* Loop while DR register in not emplty */
  while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET);
  /* Send byte through the SPI1 peripheral */
  SPI_I2S_SendData(SPI1, byte);
  /* Wait to receive a byte */
  while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET);  //                 程序到了这里就不在向下执行了,而是一直死循环等待
  /* Return the byte read from the SPI bus */
  return SPI_I2S_ReceiveData(SPI1);
}




关键词: 存储器     W25X16     Debug     卡在     GetFl    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]