其他分享
首页 > 其他分享> > EEPROM存储功能验证

EEPROM存储功能验证

作者:互联网

  在飞凌RT1052开发板上,配有一个I2C接口的EEPROM,其型号是24C02,容量为256字节。由于容量较小,因此只适应于参数的存储,而不适于做硬字库来使用。     为验证24C02的读写功能,特为它配上TFT串口屏来进行信息显示,其验证效果如图所示。
<ignore_js_op>
24C02读写验证效果


现实验证效果的主程序为:
  1. int main(void)
  2. {
  3.         BOARD_ConfigMPU();
  4.         BOARD_InitPins();
  5.         BOARD_InitI2C1Pins();
  6.         BOARD_BootClockRUN();
  7.         BOARD_InitDebugConsole();
  8.         GPIO_PinInit(EXAMPLE_LED_GPIO, EXAMPLE_LED_GPIO_PIN, &led_config);        
  9.         LCD_GPIO_Cogfig();
  10.         Lcd_Init();  
  11.         LCD_Clear(RED);
  12.         BACK_COLOR=RED;
  13.         POINT_COLOR=WHITE;
  14.         LCD_ShowString(52,20,100,16,16,"OK1052-C");
  15.         LCD_ShowString(52,40,200,16,16,"EEPROM TEST");        
  16.         I2C_EEPROM_Init();        
  17.         I2C_EEPROM_TEST();
  18.         while (1);
  19. }
复制代码

实现十六进制数显示的函数为:
  1. void LCD_ShowNumH(uint16_t x,uint16_t y,uint32_t num,char size)
  2. {                 
  3.         char t,temp;
  4.         char enshow=0;                                                   
  5.         temp=num/16;
  6.         if(temp<10) LCD_ShowChar(x,y,temp+'0',size,0);
  7.         else LCD_ShowChar(x,y,temp-10+'A',size,0);
  8.         temp=num%16;
  9.         if(temp<10) LCD_ShowChar(x+8,y,temp+'0',size,0);
  10.         else LCD_ShowChar(x+8,y,temp-10+'A',size,0);
  11. }
复制代码

进行读写验证的函数为:
  1. void I2C_EEPROM_TEST()
  2. {
  3.         uint8_t dataBuff[8] = {0};
  4.         
  5.         if(!I2C_EEPROM_Read(I2C_EEPROM_BASE,0,dataBuff,8))
  6.         {
  7.           LCD_ShowString(20,80,200,16,16,"Read from EEPROM Sucess !");
  8.           for(uint8_t i=0;i<8;i++)
  9.           {
  10.                   LCD_ShowNumH(20+i*24,100,dataBuff[i],16);
  11.           }
  12.         }
  13.         
  14.         for(uint8_t i=0;i<8;i++)
  15.         {
  16.                 dataBuff[i] = i;
  17.         }
  18.         
  19.         if(!I2C_EEPROM_Write(I2C_EEPROM_BASE,0,dataBuff,8))
  20.         {
  21.                 LCD_ShowString(20,120,200,16,16,"Write to EEPROM Sucess !");
  22.                 for(uint8_t i=0;i<8;i++)
  23.                 {
  24.                   LCD_ShowNumH(20+i*24,140,dataBuff[i],16);
  25.                 }
  26.         }
  27.         
  28.         memset(dataBuff,0,8);
  29.         if(!I2C_EEPROM_Read(I2C_EEPROM_BASE,0,dataBuff,8))
  30.         {
  31.                 LCD_ShowString(20,160,200,16,16,"Read from EEPROM Sucess !");
  32.                 for(uint8_t i=0;i<8;i++)
  33.                 {
  34.                    LCD_ShowNumH(20+i*24,180,dataBuff[i],16);
  35.                 }
  36.         }
  37.         
  38. }

标签:存储,dataBuff,20,16,验证,LCD,I2C,EEPROM
来源: https://www.cnblogs.com/zhugeanran/p/16390603.html