ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

EEPROM存储功能验证

2022-06-19 16:05:37  阅读:155  来源: 互联网

标签:存储 dataBuff 20 16 验证 LCD I2C 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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有