采用LPC2214,用硬件I2C,总线上挂有AT24C01,ZLG7290,PCF8563三个器件,用的是EASYARM2200光盘上的I2C软件,24C01读写正常,用ZLG7290驱动16个LED,现在无法点亮LED,程序运行到 uint8 ISendByte( uint8 sla, uint8 dat ) { /* 参数设置 */ I2C_sla = sla; // 写操作的器件地址 I2C_buf = &dat; // 待发送的数据 I2C_num = 1; // 发送1字节数据 I2C_suba_en = 0; // 无子地址 I2C_end = 0; I2CONCLR = 0x2C; I2CONSET = 0x60; // 设置为主机,并启动总线 while( 0 == I2C_end ); if( 1 == I2C_end ) { return( 1 ); } else { return( 0 ); } }运行到while( 0 == I2Cend),由于I2CEND不能是高电平,总是return(0 ),不知何故,芯片是ZLG7290CS,已经换了一片,还是不行,请周工帮忙解答. |