AT24C02程序.doc


文档分类:IT计算机 | 页数:约6页 举报非法文档有奖
1/6
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/6
文档列表 文档介绍
有关于 AT24C02 存储器的操作, C语言部分看不懂 unsigned long D[17] IRcvStr(AT24C02, 0, &pDat[0], 8); for (i=0; i<4; i++) { D[14+i]=pDat[i*2+0]+pDat[i*2+1]*0x100; Count1 = D[14]; 以上是 的程序 bit IRcvStr(unsigned char sla,unsigned char suba,unsigned char *s,uns igned char no) { unsigned char i; Start_I2c(); /*启动总线*/ SendByte(sla); /*发送器件地址*/ if(ack==0)return(0); SendByte(suba); /*发送器件子地址*/ if(ack==0)return(0); Start_I2c(); /*重新启动总线*/ SendByte(sla+1); if(ack==0)return(0); for(i=0;i<no-1;i++) { *s=RcvByte(); /*发送数据*/ Ack_I2c(0); /*发送就答位*/ s++; } *s=RcvByte(); Ack_I2c(1); /*发送非应位*/ Stop_I2c(); /*结束总线*/ return(1); }以上是 的部分程序这个带星号的*s和 24C02main 的看不懂啊分享到: 2013-04-23 21:03 提问者采纳【 1】*s是指针 s所指向的内容。 s++ 将改变地址,指向下一个字节存放地址。【 2】主程序中, pDat 数组的地址是实参。子程序中 s是形参。主程序调用 IRcvStr(AT24C02, 0, &pDat[0], 8)函数,就是从地址为"AT24C02 "(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 是啥,表达式含义,你应该知道

AT24C02程序 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数6
  • 收藏数0 收藏
  • 顶次数0
  • 上传人63229029
  • 文件大小45 KB
  • 时间2017-04-13