阅读:1311回复:0
MEGA8驱动8566遇到巨大难题,求救
我使用mega8驱动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否则不能写入,极端苦闷,请高手赐教,谢谢 |
|