SmartOS之------AT45DB(SpiFlash)

作用


 

SpiFlash芯片AT45DB的例程,支持4和6

 

代码


 

 1 #include "AT45DB.h"

 2 

 3 const byte Tx_Buffer[] = "STM32F10x SPI Firmware Library Example: communication with an AT45DB SPI FLASH";

 4 

 5 void TestAT45DB()

 6 {

 7     Spi spi(SPI_2, 9000000, true);

 8     AT45DB sf(&spi);

 9     debug_printf("AT45DB ID=0x%08X PageSize=%d\r\n", sf.ID, sf.PageSize);

10     int size = ArrayLength(Tx_Buffer);

11     debug_printf("DataSize=%d\r\n", size);

12 

13     uint addr = 0x00000;

14     if(sf.ErasePage(addr))

15         debug_printf("擦除0x%08x成功\r\n", addr);

16     else

17         debug_printf("擦除0x%08x失败\r\n", addr);

18 

19     byte Rx_Buffer[80];

20     for(int i=0; i<9; i++)

21     {

22         sf.ErasePage(addr);

23         memset(Rx_Buffer, 0, ArrayLength(Rx_Buffer));

24         if(!sf.Write(addr, Tx_Buffer, size)) debug_printf("写入0x%08X失败!\r\n", addr);

25         if(!sf.ReadPage(addr, Rx_Buffer, size)) debug_printf("读取0x%08X失败!\r\n", addr);

26         memset(Rx_Buffer, 0, ArrayLength(Rx_Buffer));

27         addr += size;

28     }

29     

30     for(int i=0; i<size; i++)

31     {

32         if(Rx_Buffer[i] != Tx_Buffer[i]) debug_printf("Error %d ", i);

33     }

34     debug_printf("\r\nFinish!\r\n");

35 }

 

 

讲解


 

无。

End!

    ------来自新生命团队!

 

欢迎大家一起交流 ,分享程序员励志故事。   幸福的程序员 QQ群:幸福的程序员 嵌入式交流群中国嵌入式物联网群

 

你可能感兴趣的:(Flash)