spi eeprom读写c语言实现(spi eeprom读写c语言实现).docVIP

spi eeprom读写c语言实现(spi eeprom读写c语言实现).doc

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
spi eeprom读写c语言实现(spi eeprom读写c语言实现)

spi eeprom读写c语言实现(spi eeprom读写c语言实现) / / spi接口eeprom的驱动. # include 2407.h # include eeprom.h unsigned int sleep _ data spirddata, spistatus, spibsyloop; / / spibsyloop决定忙状态的循环判断 unsigned int spirdflag, spiwrflag, spiwrenflag, spibsyflag, spiendflag, spitxcnt, spirxcnt; / / spi要靠自己判别发送和接受 spi发送的字节数 接受的字节数 / / 设置了写使能、写数据、读数据、忙状态等标志 / / 根据标志决定中断中的操作, 自己等计划中的中断 unsigned int spierrflag; / / 忙标志长期有效后的报错标志 unsigned int spitxdata [1000], spirxdata [1000]; / / 建立的写数组和读数组 unsigned int spitxnum, spirxnum; / / 批量读写计数标志 unsigned int * spiwrptr; / / 写数据指针指向将写的源数组 unsigned int * spirdptr; / / 读数据指针指向将读目的数组 unsigned int e2promerr; spiinit void (void) { mcrb | = 0x1c; / / spi相应i / o口基本功能, ste使用io口控制 mcrb = 0xffdf; pcdatdir | = 0x2020; / / ste设置为输出且置位 spiccr = 0x07; / / 8位传送方式 spictl = 0x1f; / / 使能覆盖中断 spibrr = 0x004f; / / 波特率500k spipri = 0x10; / / 高优先级中断spi、不受仿真影响; 0x40低优先级 \ 一旦进入仿真spi停止 spiccr = 0x87; / / 处于准备状态 spirdflag = 0; spiwrflag = 0; spiwrenflag = 0; spibsyflag = 0; spierrflag = 0; spiendflag = 0; spitxcnt = 0; spirxcnt = 0; e2promerr = 0; } void spiwordwr (unsigned int wraddress, unsigned int wrdata) {/ / 单字的写入 写入地址 写入数据 / / 无论读写都是把spi当成2048个16位存储空间, 因为不能跨16个字 (32字节) 写 / / spi内部是4096 * 8的空间, 32字节一页, 最多一页的写入, 不能跨页写, 可以跨页读 unsigned int i = 0; unsigned int j; spibsy (); spiwrenflag = 1; pcdatdir | = 0x2020; / / 置iopc5为输出高 pcdatdir = 0xffdf; / / 置ste为输出低 / / for (j = 0, j 5; j + +); / / 延时500ns / / a (spiendflag = = 0); spitxbuf = 0x0600; while (spiendflag = = 0); / / (spierrflag = = 0)); / / 写使能 spiendflag = 0; / / for (j = 0, j 5; j + +); / / 延时500ns pcdatdir | = 0x2020; / / 置iopc5为输出高 for (j = 0, j 5; j + +); / / 延时500ns pcdatdir = 0xffdf; / / 置ste为输出低 / / for (j = 0, j 1; j + +); / / 延时500ns spiwrflag = 1; spitxcnt = 5; spitxbuf = 0x0200; while (spiendflag = = 0); / / (spierrflag = = 0)); spiendflag = 0; spitxbuf = (wraddress 1) 0xff00; / / (((spists 0x20) = = 0x20); while (spiendflag = = 0); / / (spierrflag = = 0)); spiendflag = 0; spitxbuf = (wraddress

您可能关注的文档

文档评论(0)

jgx3536 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档