#include <pic18.h>
#include "typedef.h"
#include "FM25CL64V.h"
volatile uint8 Dat[100];
volatile uint16 u16Addr;
volatile uint8 WrDat=0x55;
volatile uint8 RdDat;
void Init_SPIBus( void ) {
ADCON1 = 0x0f; //
DirSpiCSFM = 0;
DirSpiMoSi = 0;
DirSpiMiSo = 1;
DirSpiClk = 0;
}//初始化SPI
// 往SPI口写一个字节 ,无片选操作;
void FunSpiBusWr( uint8 udata ) {
uint8 temp ; //
for ( temp= 0; temp< 8; temp++ ){
DfSpiClk = 1; // 1-0
_nop_( ) ;
DfSpiClk = 0; //
_nop_( ) ;
if (udata&0x80 ) { DfSpiMoSi = 1; }
else{ DfSpiMoSi = 0; }//
udata <<= 1; //
DfSpiClk = 0; //
_nop_( ) ;
DfSpiClk = 1; //
_nop_( ) ;
} //
DfSpiClk = 1; // 1-0
}
uint8 FunSpiBusRd( void ) {
uint8 ctrl_i, Ddata ;
for ( ctrl_i = 0; ctrl_i < 8; ctrl_i++){
DfSpiClk = 1; //
_nop_( ) ;
DfSpiClk = 0;
_nop_( ) ;
DfSpiClk = 0;
_nop_( ) ;
DfSpiClk = 1; //
Ddata = Ddata << 1;
Ddata |= DfSpiMiSo; //
_nop_( ) ;
}//
DfSpiClk = 1; // 1-0
return ( Ddata );
}
uint8 ReadState( void ){
uint8 ur;
DFFm25_CS;
Out_FM25CL64_Byte(FM25CL64_RDSR_INST);
ur=In_FM25CL64_Byte();
DFFm25_DisCS;
return (ur);
}//
void wip_poll(void )
{
uint8 r;
r=ReadState( );
}//
// 5.写使能
void FmWriteEnable(void ){
DFFm25_CS ;
Out_FM25CL64_Byte(FM25CL64_WREN_INST);
DFFm25_DisCS;
return;
}
void FmWriteState( uint8 status){
FmWriteEnable( );
DFFm25_CS ;
Out_FM25CL64_Byte(FM25CL64_WRSR_INST);
Out_FM25CL64_Byte( status );
DFFm25_DisCS;
wip_poll();
}
uint8 Read_FM25CL64_Byte( uint16 address ){
uint8 retdat;
DFFm25_CS ;
Out_FM25CL64_Byte( FM25CL64_READ_INST);
Out_FM25CL64_Byte((address&0xff00)>>8);
Out_FM25CL64_Byte(address&0x00ff);
retdat=In_FM25CL64_Byte( ); //
DFFm25_DisCS;
return ( retdat );
}//
void Write_FM25CL64_Byte(uint16 address,uint8 dat )
{
FmWriteEnable( );
DFFm25_CS ;// FM25CL64_SCK=0;
Out_FM25CL64_Byte(FM25CL64_WRITE_INST);
Out_FM25CL64_Byte((address&0xff00)>>8);
Out_FM25CL64_Byte(address&0x00ff);
Out_FM25CL64_Byte(dat);
DFFm25_DisCS;
wip_poll();
return;
}//
//- 延时程序
void delay (uint16 i)
{
while(i--)
;
}
main(void){
// WrDat=5;
// 铁电 DirSpiCSFM ;
Init_SPIBus( ); // 初始化FLUSH读写模块
FmWriteState( FM25CL64_STATUS_REG ); // 取消写保护
FmWriteEnable( ); //
// 存储设备的读写测试;
u16Addr=0x10;
// 片外EEP铁电存储接口;预留0.5K地址存储参数;
// Write_FM25CL64_Byte(u16Addr, WrDat ); // 无数据;
RdDat= Read_FM25CL64_Byte(u16Addr );
while(1);
}
lcc8559
- 粉丝: 3
- 资源: 1
最新资源
- 水沸腾了加热过程中水的变化记录表.docx
- 小红书运营工作职责.docx
- 学生社会实践活动鉴定表.docx
- 学生职业行动能力实践调查表.docx
- 学校绩效考核及绩效工资分配方案.docx
- 学校教导处工作计划.docx
- 医学院试卷保密室管理规定、保密室值班制度、医学院试卷保密室监控管理制度.docx
- 医学院试卷保密室钥匙使用承诺书.docx
- 印刷画册常见尺寸表.docx
- 运动素养与身心健康测评标准表.docx
- 渔业资源增殖放流实施方案.docx
- 智力残疾评定标准一览表.docx
- 制定 护理标准 制度.docx
- 中心学校学生住宿服务事项及安全管理情况.docx
- 中心小学课题管理办法.docx
- 中心学校劳动教育开展情况.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
- 1
- 2
- 3
- 4
- 5
前往页