資源簡介
本資源主要是以stc15w60s2為開發平臺,進行鐵電讀取與擦寫實驗,適用于數據的快速存儲與高擦寫次數的研究。

代碼片段和文件信息
#include?“fm25xx.h“
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//?*******************************************************************??
//?模擬SPI通訊?--?寫FM25040B
//?*******************************************************************?
void?FM_WriteByte(u8?dat)
{
u8?i;
for(i?=?0;i?8;i++)
{
FM_SCK?=?0;
// Delay1us();
if(dat?&?0x80) ?
FM_MOSI?=?1;
else
FM_MOSI?=?0;
dat?<<=?1;
// Delay1us();
FM_SCK?=?1;
// Delay1us();
}
FM_SCK?=?0;
// Delay1us();
}
//?*******************************************************************??
//?模擬SPI通訊?--?讀FM25040B
//?*******************************************************************?
u8?FM_ReadByte()
{
u8?idat?=?0;
for(i?=?0;i?8;i++)
{
FM_SCK?=?0;
// Delay1us();
dat?<<=?1;
if(FM_MISO?==?1)
dat??|=?0x01;
// Delay1us();
FM_SCK?=?1;
// Delay1us();
}
FM_SCK?=?0;
// Delay1us();
return?dat;
}
//?*******************************************************************
//FM25040寫使能
//
//?*******************************************************************
void?FM_WriteEnable()
{
FM_CS?=?0; //片選使能
// delay_us(1);
FM_WriteByte(FM_WREN); //發送寫使能指令
????
FM_CS?=?1; //片選失能
// delay_us(1);
}
//?*******************************************************************
//FM25040寫禁止
//
//?*******************************************************************
void?FM_WriteDisable()
{
FM_CS?=?0; //片選使能
// delay_us(1);
FM_WriteByte(FM_WRDI); //發送寫失能指令
FM_CS?=?1; //片選失能
// delay_us(1);
}
//?*******************************************************************
//FM25040寫狀態寄存器
//
//?*******************************************************************
void?FM_WriteStateRegister(u8?cmd)
{
FM_WriteEnable(); //寫使能
FM_CS?=?0; //片選使能
// delay_us(1);
FM_WriteByte(FM_WRSR); //發送寫狀態寄存器指令
FM_WriteByte(cmd); //發送命令
FM_CS?=?1; //片選失能
// delay_us(1);
}
//?*******************************************************************
//FM25040讀狀態寄存器
//
//?*******************************************************************
u8?FM_ReadStateRegister()
{
u8?tmp;
FM_WriteEnable(); //寫使能
FM_CS?=?0; //寫使能
// delay_us(1);
FM_WriteByte(FM_RDSR); //發送讀狀態寄存器指令
tmp?=?FM_ReadByte(); //讀取寄存器狀態
FM_CS?=?1; //片選失能
// delay_us(1);
return?tmp;
}
////?*******************************************************************
////FM25040讀數據
////addr:?共9位地址
////讀取SPI?FLASH??
////在指定地址開始讀取指定長度的數據
////pBuffer:數據存儲區
////ReadAddr:開始讀取的地址(24bit)
////NumByteToRead:要讀取的字節數(最大65535)
////u8?FM_Read(u8*?pBufferu32?ReadAddru16?NumByteToRead)?
////返回:0(成功),1(失敗)
////?*******************************************************************
//u8?FM_Read(u8*?pBufferu16?ReadAddru16?NumB
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????13293??2018-09-11?11:52??FM25xx\fm25xx.c
?????文件????????1174??2018-09-07?09:18??FM25xx\fm25xx.h
?????目錄???????????0??2018-12-13?13:44??FM25xx\
- 上一篇:Zxing3.1版
- 下一篇:delphi打印收銀小票的兩種方式
評論
共有 條評論