- 1、本文档共24页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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
您可能关注的文档
- plc在棉纺细纱机电气控制系统的应用(Application of PLC in electric control system of cotton spinning frame).doc
- plc干扰(PLC interference).doc
- pom材料特性(pom材料特性).doc
- powerpc 常用寄存器简介(Introduction to PowerPC common registers).doc
- powerpoint 2003题库版5第五章插入及编辑表格和图表b(PowerPoint 2003 question library version 5, fifth chapters insert and edit tables and charts B).doc
- policy route(策略路由).doc
- powerpoint实用技巧荟萃(PowerPoint practical skills).doc
- plc学习建议(PLC learning tips).doc
- ppp模式的风险分析与对策(Risk analysis and Countermeasure of PPP model).doc
- plc精选简答(PLC select t).doc
- 2025年智能快递驿站行业政策与市场机遇报告.docx
- 2025年校园安全防范中新能源电动巡逻车采购可行性分析.docx
- 2025年智能垃圾分类智慧监管平台在智慧旅游区的应用前景研究.docx
- 2025年智能家居报告:人工智能伦理风险的法律责任与用户隐私保护.docx
- 2025年智能垃圾分类与垃圾分类信息化管理结合的可行性研究.docx
- 2025年智慧社区远程医疗诊断中心在基层医疗机构运营管理中的应用报告.docx
- 2025年智慧社区:老年活动广场智能化升级研究.docx
- 2025年智能社区新能源电动巡逻车市场应用前景分析报告.docx
- 2025年智能垃圾分类智慧监管平台在垃圾分类回收与处理中的智能化改造路径.docx
- 2025年本土半导体材料产业链国产化战略布局报告.docx
文档评论(0)