大家好,我修改此例程,24c02里已有数据,我想用读的方式(不写)读取24c02中的数据,但是无数据输出,求助各位。以下是修改后的main函数。
#include "stm32f10x.h"
#include "usart1.h"
#include "i2c_ee.h"
#define EEP_Firstpage 0x00
/*u8 I2c_Buf_Write[256];*/
u8 I2c_Buf_Read[256];
void I2C_Test(void);
/*
* 函数名:main
* 描述 :主函数
* 输入 :无
* 输出 :无
* 返回 :无
*/
int main(void)
{
/* 配置系统时钟为 72M */
//SystemInit();;
/* 串口1初始化 */
USART1_Config();
/* I2C 外设初(AT24C02)始化 */
I2C_EE_Init();
USART1_printf(USART1, "
这是一个I2C外设(AT24C02)读写测试例程
");
USART1_printf(USART1, "
("__DATE__ " - " __TIME__ ")
");
I2C_Test();
while (1)
{
}
}
/*
* 函数名:I2C_EE_Test
* 描述 :I2C(AT24C02)读写测试。
* 输入 :无
* 输出 :无
* 返回 :无
*/
void I2C_Test(void)
{
u16 i;
/* printf("写入的数据
");
for ( i=0; i<=255; i++ ) //填充缓冲
{
I2c_Buf_Write = i;
printf(&quot;0x%02X &quot;, I2c_Buf_Write);
if(i%16 == 15)
printf(&quot;
&quot;);
}
//将I2c_Buf_Write中顺序递增的数据写入EERPOM中
I2C_EE_BufferWrite( I2c_Buf_Write, EEP_Firstpage, 256);
*/
printf(&quot;
读出的数据
&quot;);
//将EEPROM读出数据顺序保持到I2c_Buf_Read中
I2C_EE_BufferRead(I2c_Buf_Read, EEP_Firstpage, 256);
//将I2c_Buf_Read中的数据通过串口打印
for (i=0; i<256; i++)
{
/*if(I2c_Buf_Read != I2c_Buf_Write)
{
printf(&quot;0x%02X &quot;, I2c_Buf_Read);
printf(&quot;错误:I2C EEPROM写入与读出的数据不一致
&quot;);
return;
}
*/
printf(&quot;0x%02X &quot;, I2c_Buf_Read);
if(i%16 == 15)
printf(&quot;
&quot;);
}
printf(&quot;I2C(AT24C02)读测试成功
&quot;);
} |