打印

430 IO口模拟I2C 这两句代码是什么意思 ?

[复制链接]
1523|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xichengmadia|  楼主 | 2012-12-25 21:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*******************************************
函数名称:Write_NByte
功    能:向EEPROM中写入N个字节的数据
参    数:outbuf--指向写入数据存放首地址的指针
          n--数据个数,最大不能超过8,由页地址
             决定其最大长度
          dataaddress--数据写入的首地址
返回值  :写入结果:1--成功,0--失败
********************************************/
/*******************************************
函数名称:Read_1Byte_Randomaddress
功    能:从EEPROM的指定地址读取1个字节的数据
参    数:dataaddress--数据读取的地址
返回值  :读取的数据
********************************************/
  if(Write_NByte(wbuffer,8,0x08)) //从第1页的第0个字节起连续写8个数据
        flag = 3;
   
    _NOP();     //在此设置断点观察flag
   
    if(Read_NByte_Randomaddress(rbuffer,8,0x08))//从第1页的第0个字节起连续读8个数据
        flag = 4;
   
    _NOP();     //在此设置断点观察rbuffer的值



相关帖子

沙发
xichengmadia|  楼主 | 2012-12-25 21:35 | 只看该作者
为什么0x08是从第零个字节?

使用特权

评论回复
板凳
eemyicworld| | 2012-12-26 10:24 | 只看该作者
Write_NByte/Read_NByte_Randomaddress 没有原函数吗,看不到原函数无法理解此现象.

使用特权

评论回复
地板
huanghongxing| | 2012-12-26 22:47 | 只看该作者
应该是Write_NByte与Read_NByte_Randomaddress函数产生的

使用特权

评论回复
5
yirongfu| | 2012-12-27 17:18 | 只看该作者
xichengmadia 发表于 2012-12-25 21:35
为什么0x08是从第零个字节?

代码里头是说从第1页的第0个字节,前提就是范围限于某页内,0x08是8个字节一页的连续写的地址分块的起始字节,所以原注释者说是第0字节,这个零不是说绝对地址分配的第0,而是相对页来说的第0

不过,一页不一定是8个字节,原Catalyst生产的EEPROM就是16字节

使用特权

评论回复
6
chenyu988| | 2012-12-27 21:06 | 只看该作者
贴出Write_NByte函数来

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

105

主题

1002

帖子

0

粉丝