问题描述太不清楚,无法判断是软件还是硬件问题;详见周工的参考书
深入浅出ARM7-LPC213x_214x
主函数:
#include "../source/config.h" // 头文件
/**************************************************************************************
* FunctionName : OSDelayNMs()
* Description : 延时1ms
* EntryParameter : NO
* ReturnValue : NO
**************************************************************************************/
void OSDelayNMs(uint16 t)
{
uint16 i;
while (t--)
{
for (i=6500; i!=0; i--)
{
;
}
}
}
/**************************************************************************************
* FunctionName : OSPortSet()
* Description : 端口配置函数
* EntryParameter : NO
* ReturnValue : NO
**************************************************************************************/
void OSPortSet(void)
{
PINSEL0 = 0x00000000; // 管脚连接,设置成GPIO
PINSEL1 = 0x00000000; //
PINSEL2 = 0x00000004; // 保留调试端口,去掉跟踪端口
}
/**************************************************************************************
* FunctionName : OSClearCache()
* Description : 寄存器清零
* EntryParameter : *p - 需要清零的寄存器;length - 寄存器的长度
* ReturnValue : NO
**************************************************************************************/
void OSClearCache(uint8 *p, uint16 length)
{
uint16 i;
for (i=0; i<length; i++)
{
*p++ = 0;
}
}
/**************************************************************************************
* FunctionName : OSInit()
* Description : 初始化系统
* EntryParameter : NO
* ReturnValue : NO
**************************************************************************************/
void OSInit(void)
{
OSDelayNMs(200); // 适当延时
OSPortSet(); // 初始化I/O口
I2cInit(100000); // 初始化IIC
/* Add your initialization codes here */
}
/**************************************************************************************
* FunctionName : main()
* Description : 主函数
* EntryParameter : NO
* ReturnValue : NO
**************************************************************************************/
int main(void)
{
uint8 i,iicBuf[10];
OSInit(); // 初始化系统
while (1)
{
for (i=0; i<10; i++)
{
iicBuf = i + '0';
}
I2C_WriteNByte(AT24C02, ONE_BYTE_SUBA, 1, iicBuf, 10);
OSClearCache(iicBuf,10);
I2C_ReadNByte(AT24C02, ONE_BYTE_SUBA, 1, iicBuf, 10);
for (i=0; i<10; i++)
{
if (iicBuf != (i+'0'))
{
while (1) ;
}
}
}
}
/**************************************************************************************
* End Of File
**************************************************************************************/