AT2402程序.docVIP

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

有关于AT24C02存储器的操作,C语言部分看不懂 unsigned long D[17] IRcvStr(AT24C02, 0 , pDat[0], 8); for (i=0; i4; i++) { D[14+i]=pDat[i*2+0]+pDat[i*2+1 ]*0x100; Count*! = D[14]; 以上是24C02main.c的程序 bit IRcvStr(unsigned char igned char no) { unsigned char i; Start_l2c(); SendByte(sla); if(ack==0)return(0); Send 巳 yte(suba); if(ack==0)return(0); Start_l2c(); SendByte(sla+1); if(ack==0)return(0); for(i=0;ino-1 ;i++) { *s=RcvByte(); Ack_l2c(0); s++; } *s=RcvByte(); Ack_l2c(1); Stop_l2c(); return(1); } 以上是24C02.C的部分程序 sla,unsigned char suba,unsigned char r启动总线v /*发送器件地址7 /*发送器件子地址7 r重新启动总线*/ /*发送数据7 广发送就答位V /*发送非应位V /*结束总线V 这个带星号的*s和24C02main的看不懂啊 *s,uns 2013-04-23 21:03 提问者采纳 1】*s是指针s所指向的内容。s++将改变地址,指向K一个字节存放地址。 2】主程序屮,pDat数组的地址是实参。子程序中s是形参。 主程序调用IRcvStr(AT24C02, 0,pDat[0】,8)函数,就是从地址为nAT24C02 (IIC器件地址宏名)的24C02芯片屮,从0起始地址连续读取8个字节内容,送 到数组pDat[]中。调用子程序时刻,s就是pDat[]的首地址。 在子程序里而,*s=RcvByte(); ... s++;实际的情况,可以这样理解: pDat[x]=RcvByte(); ... x++; 3】主程序屮将pDat[】连续的每两个字节,低地址在低8位,转换成1个整形 字。数组pDat的前8个字节,共4次转换,并把他们存放到数组D[14]、D[15]、 D[16]、D[17]四个元素中。 追问 我不明白的是PDAT[0],只冇0个元素怎么读取啊? D[14]=PDat[i*2]+PD at[i*2+1]*100怎么理解。就是这些数组把我晕了 回答 1】PDAT[0】表示数组的首地址。传递的并不是数组本身,而是数组的 首地址。 2】D[14+i]=PDat[i*2]+PDat[i*2+1】*100 你把 i=0......i=3 代进去看,如 下。再理解。 D[14]=PDat[0]+PDat[1 ]*0x100; D[15]=PDat[2]+PDat[3]*0x100; D[16]=PDat[4]+PDat[5]*0x100; D[17]=PDat[6]+PDat[7]*0x100; 0x100是啥,表达式含义,你应该知道吧? 追问 count1=D[14]是指在数组里边地址为14这个地方的字节吗?还是数组D [14]有14个元素?问最后一次。 回答 你需要明白数组的声明和定义。 1】声明:unsigned int a[6];表示无符号整形数组,共有6个元素。只 允许声明一次。 2】定义:a[0]=1;……a[4]=b+1;最多a[5]=xxx。给元素赋值。下标0-5 表示对其中的6个元素分别访问。也可以在声明的同时定义。 追问 问题是这个D[14]屮的前而还冇一些元素D[1】...D[13].这些他是怎么处理 的。为什么非要访问D[14],D[1]不行吗?最不明白的就是D[14].不是只读 取八个字节的吗。? 可以加你的QQ吗? 这-部分,不能断章取义。最后算了半天,后而只有一句D[14]赋值给C ountl。我也看不明白。具体要看其整个程序设计屮关于数据部分的开发 约定。 从这段程序看,你的理解没问题。用哪个不是用呢,是吧?装Baidu Hi。 追问 周末再把程序发给你吧。实在搞不明0。这个赋值。现在在学校。 标题: EEPROM读写试验(按钮输入)* 此例程学员更进一步地熟悉并掌握(存储芯片AT2402)的操作,宥保存和读取 操作 * 了解掌握I2C总线接口的工作原理 TOC \o 1-5 \h \z 具体操作:第1个按钮保存 第2个按钮读取 * 第3个按钮减减 第4个按钮加数 * ★ 希望学员认真体会消化此例程,试着用别的资源來操作EEPROM! * #includeFunction

文档评论(0)

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

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

1亿VIP精品文档

相关文档