代码中有详细连接方式,IIC读取写入EEPROM
单片机源程序如下:
- #include "led.h"
- #include "delay.h"
- #include "sys.h"
- #include "usart.h"
- #include "lcd.h"
- #include "key.h"
- #include "24cxx.h"
- #include "myiic.h"
- #include "oled.h"
- //要写入到24c02的字符串数组
- const u8 TEXT_Buffer[]={"CUIT"};
- #define SIZE0 sizeof(TEXT_Buffer)
-
- int main(void)
- {
- u8 key;
- u16 i=0;
- u8 datatemp[SIZE0];
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 设置中断优先级分组2
- delay_init(); //延时函数初始化
- uart_init(115200); //串口初始化为9600
- LED_Init(); //初始化与LED连接的硬件接口
- KEY_Init(); //按键初始化
- AT24CXX_Init(); //IIC初始化
- OLED_Init();
- OLED_Clear();
- PBout(9)=0;
- PBout(8)=0;
- while(AT24CXX_Check())//检测不到24c02
- {
- printf("24C02 Check Failed! \n");
- OLED_ShowString(1,1,"24C02 Check !",8);
-
- delay_ms(500);
- printf("Please Check! \n");
- OLED_ShowString(1,3,"Please Check! ",8);
- delay_ms(500);
- }
- OLED_Clear();
- printf("24C02 Ready! \n");
- OLED_ShowString(1,1,"24C02 Ready!",8);
- delay_ms(800);
- delay_ms(800);
- delay_ms(800);
- OLED_Clear();
-
- printf("Start Write 24C02....\n");
- OLED_ShowString(4,3,"Start Write...",8);
- delay_ms(800);
- delay_ms(800);
- delay_ms(800);
- AT24CXX_Write(0,(u8*)TEXT_Buffer,SIZE0);
-
- printf("24C02 Write Finished! \n");
- OLED_ShowString(4,3,"Write Finished !",8);
- delay_ms(800);
- delay_ms(800);
- delay_ms(800);
- OLED_Clear();
- // }
-
- // if(key==KEY0_PRES)//KEY0 按下,读取字符串并显示
- // {
- printf("Start Read 24C02.... \n");
- OLED_ShowString(4,3,"Start Read ...",8);
- delay_ms(800);
- delay_ms(800);
- delay_ms(800);
- AT24CXX_Read(0,datatemp,SIZE0);
- OLED_Clear();
-
- OLED_ShowNum(5,5,SIZE0,3,8);
- printf("The Data Is: \n");
-
- OLED_ShowString(2,1,"The Data Is:",8);
- OLED_ShowString(4,3,datatemp,8);
- printf("%s \n",datatemp);
- // }
- }
- //}
复制代码
所有资料51hei提供下载:
IIC-24C02.rar
(380.94 KB, 下载次数: 72)
|