#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);
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
FM25CL64铁电测试代码20110112.rar (3个子文件)
铁电测试代码20110112
FM25CL64V.h 2KB
FM25CL64V.c 3KB
typedef.h 2KB
共 3 条
- 1
lcc8559
- 粉丝: 3
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
- 4
- 5
前往页