lituoy
驱动牛犊
驱动牛犊
  • 注册日期2005-05-30
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望4点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2365回复:0

使用MEGA8驱动PCF8566地址问题

楼主#
更多 发布于:2005-08-04 10:25
  我使用mega8的TWI驱动pcf8566在程序开始时有如下函数
char  I2C_SendStr( char sla, char suba, char *s, char no )
{  /* 参数设置 */
   I2C_slaveaddr = sla;              // 写操作的器件地址
   I2C_cmdaddr = suba;              // 子地址
   I2C_buf = s;                    
   I2C_num = no;      
   I2C_stat = start;
   I2C_cmdaddr_en = 2;              // 有子地址写
  
   Start();
  
   while(I2C_stat == start);
   if(I2C_stat == OK)
        return (1);
   else
        return (0);
}
所以在后来的初始化中我定义如下
//显示初始化
void Init_Display(void)
{
       char Cmd_Buf[10] = {0x92,0xC8,0x60,0xff,0xff,0xff,0xff,0xff,0xff,0xff};
       //char i;
       //for(i=0;i<7;i++)
       //Dis_Buf=0;
              
           I2C_SendStr(PCF8566,0xe0,Cmd_Buf,10);
        
}
在此处可以选择oxe0和ox60可以写入
但是在后面的现实部分
//显示子程序
void Display(void)
{
    //char Dis_Buf[8] = {0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff};
char Dis_Buf[9] = {0x80,0x70,0x7D,0x60,0x3E,0x7A,0x63,0x5B,0x5F};
    I2C_SendStr(PCF8566,0x00,Dis_Buf,9);}
这里的子地址只能用00否则不能写入,极端苦闷,请高手赐教,谢谢
游客

返回顶部