at24c16中指定地址写入一个数据的疑问

2019-12-31 19:18发布

  1. //在AT24CXX指定地址写入一个数据
  2. //WriteAddr  :写入数据的目的地址   
  3. //DataToWrite:要写入的数据
  4. void AT24CXX_WriteOneByte(u16 WriteAddr,u8 DataToWrite)
  5. {                                                                                                                                                                                          
  6.         IIC_Start();  
  7.         IIC_Send_Byte(0XA0+((WriteAddr/256)<<1));   //发送器件地址0XA0,写数据          
  8.         IIC_Wait_Ack();          
  9.         IIC_Send_Byte(WriteAddr%256);   //发送低地址
  10.         IIC_Wait_Ack();                                                                                                              
  11.         IIC_Send_Byte(DataToWrite);     //发送字节                                                          
  12.         IIC_Wait_Ack();                                
  13.         IIC_Stop();//产生一个停止条件
  14.         delay_ms(10);         
  15. }
复制代码为什么这句代码后面里面addr为什么需要除以256然后这边移动一位IIC_Send_Byte(0XA0+((WriteAddr/256)<<1));   //发送器件地址0XA0,写数据

捕获.PNG (32.37 KB, 下载次数: 0) 下载附件 2013-3-8 10:46 上传



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。