新手求讲解

2019-08-17 08:28发布


这部分看不太懂,有没有好心人给讲一下呢 谢谢
这个  I2c_Buf_Write = i;   是干嘛的
为什么上面的for循环里是255 下面的是256
这句 if(i%16 == 15)      
        printf(" ");  有必要吗


void I2C_Test(void)  
{  
    u16 i;  


    printf("写入的数据 ");  

    for ( i=0; i<=255; i++ ) // 填充缓冲  
  {                              
    I2c_Buf_Write = i;  


    printf("0x%02X ", I2c_Buf_Write);  
    if(i%16 == 15)      
        printf(" ");      
   }  

    //将I2c_Buf_Write中顺序递增的数据写入EERPOM中   
    //LED1(ON);  
    I2C_EE_BufferWrite (I2c_Buf_Write, EEP_Firstpage, 256);  
    //LED1(OFF);     

  printf(" 写成功 ");  

   printf(" 读出的数据 ");  
  //将EEPROM读出数据顺序保持到I2c_Buf_Read中  
    //LED2(ON);     
    I2C_EE_BufferRead(I2c_Buf_Read, EEP_Firstpage, 256);   
   //LED2(OFF);  

  //将I2c_Buf_Read中的数据通过串口打印  
    for (i=0; i<256; i++)  
    {     
        if(I2c_Buf_Read != I2c_Buf_Write)  
        {  
            printf("0x%02X ", I2c_Buf_Read);  
            printf("错误:I2C EEPROM写入与读出的数据不一致 ");  
            return;  
        }  
    printf("0x%02X ", I2c_Buf_Read);  
    if(i%16 == 15)      
        printf(" ");  

    }  
  printf("I2C(AT24C02)读写测试成功 ");  
}  


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
操作系统
1楼-- · 2019-08-17 13:56
这个代码太简单了..前面的255,请注意了,使用的是<= 255  ,后面的256是<256,实际都是一样的.表示256次循环.只是作者喜欢那么样来卖弄两下子.刚才遇到你这个样子的人才.看不明白罢了.   if(i%16 == 15)      
        printf(" ");  
这个是有用的..他的含义是 一行只打印 16 个 就换行..不信你试试..
菜狗子
2楼-- · 2019-08-17 14:14
操作系统 发表于 2017-6-10 17:45
这个代码太简单了..前面的255,请注意了,使用的是

这个if里的意思不适i的值除以16的余数等于15才会换行吗  为什么是打印16个就换行啊?
操作系统
3楼-- · 2019-08-17 15:32
请记住一点.程序数数都是从0开始的
菜狗子
4楼-- · 2019-08-17 21:09
操作系统 发表于 2017-6-11 09:35
请记住一点.程序数数都是从0开始的

谢谢 知道了
这个if里的意思不是i的值除以16的余数等于15才会换行吗  为什么是打印16个就换行啊?
操作系统
5楼-- · 2019-08-17 23:09
 精彩回答 2  元偷偷看……
菜狗子
6楼-- · 2019-08-18 02:01
操作系统 发表于 2017-6-11 09:48
0--15正好16个.

不是31除以16余数才等于15吗  为什么15除以16余数等于15呢?

一周热门 更多>