<br />static void TaskUART0 (void *parg)<br />{<br /> INT8U err;<br /> INT8U write_data[EEPROM_SIZE], read_data[EEPROM_SIZE];<br /> INT32U i, ok_cnt=0;<br /><br /> // I2C总线初始化<br /> I2C_Init();<br /><br /> // UART0初始化<br /> CommInit();<br /> CommCfgPort( UART0, 115200, 8, COMM_PARITY_NONE, 1 );<br /> CommRxIntEn( UART0 );<br /> CommPrintf( UART0, "UART0 init complete
" );<br /><br /> OSTimeDly( OS_TICKS_PER_SEC*2 );<br /><br /><br />#define I2C_24CXX_SLAVE_ADDRESS 0xA0 // I2C总线测试,I2C总线上连接一个AT24C02芯片<br />#define I2C_MCU_SLAVE_ADDRESS 0xA4 // 用LM3S8962做的I2C从机,从逻辑上看就像一个I2C的EEPROM<br />#define I2C_GENERAL_CALL_ADDRESS 0x00<br /> while(1)<br /> {<br /> // 产生要写入的数据<br /> for( i=0; i<EEPROM_SIZE; i++ )<br /> {<br /> write_data = rand()%EEPROM_SIZE;<br /> read_data = 0;<br /> }<br /><br /> // 写入<br /> I2C_WriteMultiBytes( I2C_MCU_SLAVE_ADDRESS, 0, &write_data[0], EEPROM_SIZE );<br /> <br /> //Delay(1000);<br /><br /> // 读出<br /> I2C_ReadMultiBytes( I2C_MCU_SLAVE_ADDRESS, 0, &read_data[0], EEPROM_SIZE );<br /> <br /><br /> // 比较<br /> for( i=0; i<EEPROM_SIZE; i++ )<br /> {<br /> if( read_data!=write_data )<br /> {<br /> CommPrintf( UART0, "%d ***ERROR***
", ok_cnt );<br /> while(1);<br /> }<br /> }<br /><br /> if( i>=EEPROM_SIZE )<br /> {<br /> ok_cnt++;<br /> CommPrintf( UART0, "%d---OK
", ok_cnt );<br /> }<br /><br /> OSTimeDly( OS_TICKS_PER_SEC/20 );<br /> }<br />}
|