微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 关于MSP硬件I2C讲解

关于MSP硬件I2C讲解

时间:11-21 来源:互联网 点击:

。多字节写函数和多字节度函数分为一组,测试过程相似,不同的是写入的内容从一个变为了连续8个。请注意AT24C02的页大小为8,若从页首地址开始,最大的写字节个数为8。

另外,EEPROM写操作之后需要有10ms的延时,否则将无法进行写操作和读操作。具体请查看AT24C02数据手册。

6.1 测试代码

  1. voideeprom_config()
  2. {
  3. #ifDEBUF_EEPROM_I2C
  4. uint8_ttest_byte1=0x0B;
  5. uint8_ttest_byte2=0x01;
  6. /*
  7. step1向地址0x00写入某个值,例如0x0B
  8. 然后读出地址0x00结果,判断该值是否为0x0B
  9. */
  10. eeprom_writebyte(0x00,test_byte1);
  11. delay_ms(10);
  12. eeprom_readbyte(0x00,&test_byte2);
  13. assert_param(test_byte1==test_byte2);
  14. if(test_byte1==test_byte2)
  15. {
  16. printf("ByteReadandByteWriteTestPass\r\n");
  17. }
  18. /*
  19. step2以地址0x08作为起始地址,连续写入8个字节数据
  20. 再连续从该起始地址读取8字节内容,比较写入和读出字节内容
  21. 成功的条件为写入和读取字节内容相同
  22. */
  23. uint8_ttest_buf1[8]={1,2,3,4,5,6,7,8};
  24. uint8_ttest_buf2[8]={0,0,0,0,0,0,0,0};
  25. eeprom_writepage(0x08,test_buf1,8);
  26. delay_ms(10);
  27. eeprom_readpage(0x08,test_buf2,8);
  28. assert_param(memcmp(test_buf1,test_buf2,8)==0);
  29. if(!memcmp(test_buf1,test_buf2,8))
  30. {
  31. printf("PageReadandPageWriteTestPass!\r\n");
  32. }
  33. #endif
  34. }


6.2 测试结果

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top