1. void ReadSerialFlashPage(uint16 PageNum, uint8 *pBuffer)
  2. {
  3. uint16 i;
  4.  
  5. // Send command packet.
  6. SPIputchar(0xd2); // Main Memory Page Read command.
  7. SPIputchar((PageNum >> 7) & 0xff); // 0 0 0 0 PA10 PA9 PA8 PA7
  8. SPIputchar((PageNum << 1) & 0xff); // PA6 PA5 PA4 PA3 PA2 PA1 PA0 BA8(=0)
  9. SPIputchar(0x00); // BA7..BA0 = 0x00
  10. SPIputchar(0x00); // Don't care.
  11. SPIputchar(0x00); // Don't care.
  12. SPIputchar(0x00); // Don't care.
  13. SPIputchar(0x00); // Don't care.
  14.  
  15. // Copy returned data from flash to RAM.
  16. for (i = 0; i < 256; i++)
  17. *pBuffer++ = SPIgetchar();
  18. }
  19.