用SPI读FM25CL64铁电存储器状态,为什么收到的都是发送数据。
比如发送0x05,收到的也是0x05,
另:没有将SPI设置成内部连接
#define RDSR 0x05
Uint16 FM25CL64_Read(Uint16 address);
void FM25CL64_Write_Enable(void);
void FM25CL64_Write(Uint16 address,Uint16 data);
Uint8 FM25CL64_Read_Status();
Uint16 SpiWrite(Uint16 data);
Uint16 Spi_TxReady(void);
Uint16 Spi_RxReady(void);
//函数:Init_Spi_GPIO
//变量:无
//返回值:无
//功能:设置GPIO口B组54-57
void Init_Spi_GPIO(void)
{
EALLOW;
//SPISIMOA端口设置
GpioCtrlRegs.GPBMUX2.bit.GPIO54=1;
GpioCtrlRegs.GPBQSEL2.bit.GPIO54=3;
//SPISOMOIA端口设置
GpioCtrlRegs.GPBMUX2.bit.GPIO55=1;
GpioCtrlRegs.GPBQSEL2.bit.GPIO55=3;
//SPICLKA端口设置
GpioCtrlRegs.GPBMUX2.bit.GPIO56=1;
GpioCtrlRegs.GPBQSEL2.bit.GPIO56=3;
//SPISTEA端口设置
GpioCtrlRegs.GPBMUX2.bit.GPIO57=0;
GpioCtrlRegs.GPBDIR.bit.GPIO57=1;
EDIS;
}
//函数:InitSpi
//变量:无
//返回值:无
//功能:对SPI模块进行初始化
void InitSpi(void)
{
// Initialize SPI-A:
SpiaRegs.SPICCR.all=0x0007;//SPI软件复位
SpiaRegs.SPICTL.all=0x0006; //Interrupt disabled
//SpiaRegs.SPISTS.all=0x0000;
SpiaRegs.SPIBRR =9; // Baud rate 30Mhz /(9 + 1) = 3MHz
SpiaRegs.SPIPRI.all = 0x30; // free run
SpiaRegs.SPICCR.all=0x0087;//使SPI退出复位状态
SpiaRegs.SPICCR.bit.CLKPOLARITY = 0;
SpiaRegs.SPICTL.bit.CLK_PHASE = 0;//选择0模式
//tbd...
}
Uint8 FM25CL64_Read_Status()
{
Uint8 status;
GpioDataRegs.GPBCLEAR.bit.GPIO57 = 1;//使能
SpiWrite(RDSR);
status= SpiWrite(0xFF);
GpioDataRegs.GPBSET.bit.GPIO57 = 1;//关闭使能
//判断SPI发送准备好
return status;
}
/函数:SpiWrite
//变量:Uint16 data,SPI传输的数据
//返回值:无
//功能:实现SPI传输数据的功能
Uint16 SpiWrite(Uint16 data)
{
Uint8 ret;
SpiaRegs.SPITXBUF = data;
while(Spi_RxReady() == 0);
ret = SpiaRegs.SPIRXBUF>>8;
DELAY_US(10);
return ret;
}
//函数:Spi_TxReady
//变量:无
//返回值:无
//功能:描述SPI具备发送的条件
Uint16 Spi_TxReady(void)
{
Uint16 in;
if(SpiaRegs.SPISTS.bit.BUFFULL_FLAG == 1)
{
in = 0;
}
else
{
in = 1;
}
return(in);
}
//函数:Spi_RxReady
//变量:无
//返回值:无
//功能:描述SPI具备发送的条件
Uint16 Spi_RxReady(void)
{
Uint16 im;
if(SpiaRegs.SPISTS.bit.INT_FLAG == 1)
{
im = 1;
}
else
{
im = 0;
}
return(im);
}
void main(void)
{
//int i,j,k;
Init_Spi_GPIO();
InitSpi();
while(1)
{ FM25CL64_Read_Status();
}
}
此帖出自
小平头技术问答
everspin mram产品介绍
一周热门 更多>