#include "KH25L6406.h"
#define SPI_WAIT() while(FLASH_SPI->SR & BSY)
/*********************************************************************************************************
** Function name: Send_Byte
** Descriptions: 通过硬件SPI发送一个字节到串行Flash器件
** input parameters: data: 发送的数据
** output parameters: NONE
** Returned value: NONE
*********************************************************************************************************/
static void Send_Byte(unsigned char ucdata)
{
// SSIDataPut(SSI0_BASE, ucdata);
SPI_WAIT();
FLASH_SPI->DR = ucdata;
}
/*********************************************************************************************************
** Function name: Get_Byte
** Descriptions: 通过硬件SPI接口接收一个字节到处理器
** input parameters: NONE
** output parameters: NONE
** Returned value: ReadData 读回的数据
*********************************************************************************************************/
static unsigned char Get_Byte(void)
{
uint16_t ulReadData;
// SSIDataPut(SSI0_BASE, 0xFF); // 发送一个无效字节,以产生接收时钟
// SSIDataGet(SSI0_BASE, &ulReadData);
SPI_WAIT();
FLASH_SPI->DR = 0xFF;
SPI_WAIT();
while (FLASH_SPI->SR & RNE)
ulReadData = FLASH_SPI->DR;
return ((unsigned char)ulReadData);
}
/*********************************************************************************************************
** Function name: SPIFIFOClear
** Descriptions: SPI 清空FIFO
** input parameters: NONE
** Returned value: NONE
*********************************************************************************************************/
static void SPIFIFOClear(void)
{
uint16_t ulRecBuf = 0;
SPI_WAIT();
while (FLASH_SPI->SR & RNE)
{
ulRecBuf = FLASH_SPI->DR;
} /* 清空FIFO */
}
/*********************************************************************************************************
** Function name: FLASH_GPIO_Init
** Descriptions: GPIO口初始化
** input parameters: NONE
** output parameters: NONE
** Returned value: NON
#define SPI_WAIT() while(FLASH_SPI->SR & BSY)
/*********************************************************************************************************
** Function name: Send_Byte
** Descriptions: 通过硬件SPI发送一个字节到串行Flash器件
** input parameters: data: 发送的数据
** output parameters: NONE
** Returned value: NONE
*********************************************************************************************************/
static void Send_Byte(unsigned char ucdata)
{
// SSIDataPut(SSI0_BASE, ucdata);
SPI_WAIT();
FLASH_SPI->DR = ucdata;
}
/*********************************************************************************************************
** Function name: Get_Byte
** Descriptions: 通过硬件SPI接口接收一个字节到处理器
** input parameters: NONE
** output parameters: NONE
** Returned value: ReadData 读回的数据
*********************************************************************************************************/
static unsigned char Get_Byte(void)
{
uint16_t ulReadData;
// SSIDataPut(SSI0_BASE, 0xFF); // 发送一个无效字节,以产生接收时钟
// SSIDataGet(SSI0_BASE, &ulReadData);
SPI_WAIT();
FLASH_SPI->DR = 0xFF;
SPI_WAIT();
while (FLASH_SPI->SR & RNE)
ulReadData = FLASH_SPI->DR;
return ((unsigned char)ulReadData);
}
/*********************************************************************************************************
** Function name: SPIFIFOClear
** Descriptions: SPI 清空FIFO
** input parameters: NONE
** Returned value: NONE
*********************************************************************************************************/
static void SPIFIFOClear(void)
{
uint16_t ulRecBuf = 0;
SPI_WAIT();
while (FLASH_SPI->SR & RNE)
{
ulRecBuf = FLASH_SPI->DR;
} /* 清空FIFO */
}
/*********************************************************************************************************
** Function name: FLASH_GPIO_Init
** Descriptions: GPIO口初始化
** input parameters: NONE
** output parameters: NONE
** Returned value: NON