Тут такой вопрос Кто работал с Flash M25Pxxx ?
Что не понятно.
Когда читаю данные с флешки (256 байт) время от времени приходит меньше чем 256.
Вот так получаем все данные (данные от флешки идут по Q):
А тут не понятно почему все данные не пришли (данные от флешки идут по Q):
Код: Выделить всё
void M25PxxDataRead(unsigned char* ucBuffer, unsigned long ulReadAddr, unsigned long ulNumByteToRead)
{
unsigned char ucCommand;
unsigned char ucAddrBuffer[3];
ucAddrBuffer[0] = (unsigned char)(ulReadAddr >> 16);
ucAddrBuffer[1] = (unsigned char)(ulReadAddr >> 8);
ucAddrBuffer[2] = (unsigned char)(ulReadAddr >> 0);
// xASSERT((usNumByteToRead > 0) && (usNumByteToRead <= 2097152));
spi_H();
//
//Step 1 Select Chip
//
spi_L();
SPI_WritRead(0);
spi_H();
spi_H();
//
//Step 1 Select Chip
//
spi_L();
//
//Step 2 Transfer the command page program
//
ucCommand = M25Pxx_CMD_FAST_READ;
SPI_WritRead(ucCommand);
//
//Step 3 Transfer the address(24bit) which data will be read
//
SPI_WritRead(ucAddrBuffer[0]);
SPI_WritRead(ucAddrBuffer[1]);
SPI_WritRead(ucAddrBuffer[2]);
//
//Step 4 read Data
//
for(unsigned long i = 0; i < ulNumByteToRead; i++)
{
*(ucBuffer + i) = SPI_WritRead(0);
}
//
//Step 5 Disable chip select
//
spi_H();
}


