初中生
最后登录1970-1-1
在线时间 小时
注册时间2013-7-17
|
大家好,我修改此例程,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, "\r\n 这是一个I2C外设(AT24C02)读写测试例程 \r\n");
USART1_printf(USART1, "\r\n ("__DATE__ " - " __TIME__ ") \r\n");
I2C_Test();
while (1)
{
}
}
/*
* 函数名:I2C_EE_Test
* 描述 :I2C(AT24C02)读写测试。
* 输入 :无
* 输出 :无
* 返回 :无
*/
void I2C_Test(void)
{
u16 i;
/* printf("写入的数据\n\r");
for ( i=0; i<=255; i++ ) //填充缓冲
{
I2c_Buf_Write[i] = i;
printf("0x%02X ", I2c_Buf_Write[i]);
if(i%16 == 15)
printf("\n\r");
}
//将I2c_Buf_Write中顺序递增的数据写入EERPOM中
I2C_EE_BufferWrite( I2c_Buf_Write, EEP_Firstpage, 256);
*/
printf("\n\r读出的数据\n\r");
//将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[i] != I2c_Buf_Write[i])
{
printf("0x%02X ", I2c_Buf_Read[i]);
printf("错误:I2C EEPROM写入与读出的数据不一致\n\r");
return;
}
*/
printf("0x%02X ", I2c_Buf_Read[i]);
if(i%16 == 15)
printf("\n\r");
}
printf("I2C(AT24C02)读测试成功\n\r");
}
|
|