- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
FM25L256操作子程序
#include FM25L256.h
//FM25L256数据读取子程序
//参数: *pDestination要读入数据的主机内存地址指针; uiSourceAddress要读取的数据在FM25L256中的地址(整形); uiNum数据个数(整形)
//参数条件: uiSourceAddress+(uiNum-1)不能大于器件的最高地址; uiNum必须0;
void ReadFM25L256(unsigned char *pDestination, unsigned int uiSourceAddress, unsigned int uiNum)
{
unsigned char ucHighAddress = uiSourceAddress 8; //高位地址
SPCR = (1SPE)|(1MSTR)|(0CPOL)|(0SPR0);
EnableFM25256; //CS变低
SPDR = 0x03; //写入读命令字
while((SPSR(1SPIF))==0); //等待SPI发送完毕
SPDR = ucHighAddress; //写入高位地址
while((SPSR(1SPIF))==0); //等待SPI发送完毕
SPDR = (unsigned char) (uiSourceAddress 0x00FF); //写入低位地址
while((SPSR(1SPIF))==0); //等待SPI发送完毕
for(;uiNum 0;uiNum--)
{
SPDR = 0; //为了读取数据,需要写入数据,发送SCK,故写入0
while((SPSR(1SPIF))==0); //等待SPI发送完毕
*pDestination = SPDR; //从器件读出一个字节
pDestination++;
}
DisableFM25256; //CS变高
}
//FM25L256数据读取并发送至串口子程序
//参数: uiSourceAddress要读取的数据在FM25L256中的地址(整形); uiNum数据个数(整形)
//参数条件: uiSourceAddress+(uiNum-1)不能大于器件的最高地址; uiNum必须0;
//返回值:所发送数据的检验和
unsigned char ReadFM25L256SendToUsart(unsigned int uiSourceAddress, unsigned int uiNum)
{
unsigned char ucHighAddress = uiSourceAddress 8; //高位地址
unsigned char ucTemp;
EnableFM25256; //CS变低
SPCR = (1SPE)|(1MSTR)|(0CPOL)|(0SPR0);
SPDR = 0x03; //写入读命令字
while((SPSR(1SPIF))==0); //等待SPI发送完毕
SPDR = ucHighAddress; //写入高位地址
while((SPSR(1SPIF))==0); //等待SPI发送完毕
SPDR = (unsigned char) (uiSourceAddress 0x00FF); //写入低位地址
while((SPSR(1SPIF))==0); //等待SPI发送完毕
for(;uiNu
文档评论(0)