代碼中有詳細連接方式,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)
2018-9-13 18:48 上傳
點擊文件名下載附件
|