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