#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);
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
for starters, you cannot queue spi (or i2c) operations. instead, you have to wait for them to finish.
again, read the datasheet on that.
一周热门 更多>