AT24C02.rar
(3.61 KB, 下载次数: 41)
代码:
主函数:
#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 **************************************************************************************/
|