25lc256 写不进去,请指点下 附程序

2020-02-09 11:34发布

#include "pic1687x.h"
#define  sck_tr  TRISC3
#define  si_tr   TRISC5
#define  cs_tr   TRISC2
#define  cs      RC2
/*****************************************************
SPI初始化,接口初始化,中断初始化
******************************************************/
void Init_Fm25l256(void)
{
sck_tr=0;
si_tr=0;
cs_tr=0;
SSPEN=0;    //SPI使能
CKP=1;      //上升沿采样
CKE=0;
SSPM3=0;  //fosc/64  MASTER
SSPM2=0;
SSPM1=1;
SSPM0=0;
//SMP=0;
SSPEN=1;      //SPI使能
}

/****************************************************************
eeprom spi基础函数,写允许使能
******************************************************************/
void SPI_Wren(void)
{
cs=0;
SSPBUF=06;//写使能
cs=1;
}
/****************************************************************
eeprom SPI基础函数, 读状态寄存器
******************************************************************/
unsigned char SPI_RDSR(void)
{
unsigned Temp;

cs=0;
SSPBUF=05;//读寄存器
Temp=SSPBUF;
return Temp;

cs=1;
}

/****************************************************************
EEPROM SPI基础函数,写状态寄存器
******************************************************************/
void SPI_WRSR(unsigned char data)
{

cs=0;
SSPBUF=0x01;//写寄存器
SSPBUF=data;

cs=1;
}
void main(void)
{
unsigned char i;
Init_Fm25l256();
SPI_Wren();

SPI_WRSR(0x80);

i=SPI_RDSR();
i=SPI_RDSR();
while(1);

}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
1条回答
millwood0
1楼-- · 2020-02-09 16:07
you should read the datasheet, over and over again.

for starters, you cannot queue spi (or i2c) operations. instead, you have to wait for them to finish.

again, read the datasheet on that.

一周热门 更多>