最近在调PCF8576D的显示程序时碰到一个很怪的问题。程序初始化时,只要向最后一个寄存器写了数据,则后来的更新显示就不能显示在屏幕上了。只要不向最后一个寄存器写数据,就一切正常,后面改写屏幕都会更新。比如:如果程序初始化代码为:
PCF8576D_MasterSendStart(PCF8576D_Addr,0); // Send start and pcf8576d's address
PCF8576D_MasterWriteByte(0xc8); // Mode set, 1/3 bias, 1/4 multiplex, display enable
PCF8576D_MasterWriteByte(0x26); // Write data to address 0x26(seg38, seg39).
PCF8576D_MasterWriteByte(0xff); // data
PCF8576D_MasterSendStop();
则后面再向屏幕写数据时就不更新了。而如果把第三行的数据地址从0x26改为0x24,则后面的显示就一切正常了。但我测得PCF8576D的I2C的数据和时钟信号都是正常的。就是显示不更新。
不明白怎么会有这种问题??是不是数据指针丢失了啊???
各位用PCF867D的时候有没有碰到过这种问题? |