STM32F103C8 W25q16
Добрый вечер подключил память к контроллеру по SPI память определилась, но загрузить данные в нее или отформатировать ее не как не могу , в чем проблема не могу понять, программировать начал не давно большого опыта нет
функция чтения сектора
void W25qxx_ReadSector(uint8_t *pBuffer, uint32_t Sector_Address, uint32_t OffsetInByte, uint32_t NumByteToRead_up_to_SectorSize)
{
if ((NumByteToRead_up_to_SectorSize > w25qxx.SectorSize) || (NumByteToRead_up_to_SectorSize == 0))
NumByteToRead_up_to_SectorSize = w25qxx.SectorSize;
#if (_W25QXX_DEBUG == 1)
printf("+++w25qxx ReadSector:%d, Offset:%d ,Read %d Bytes, begin...\r\n", Sector_Address, OffsetInByte, NumByteToRead_up_to_SectorSize);
W25qxx_Delay(100);
#endif
if (OffsetInByte >= w25qxx.SectorSize)
{
#if (_W25QXX_DEBUG == 1)
printf("---w25qxx ReadSector Faild!\r\n");
W25qxx_Delay(100);
#endif
return;
}
uint32_t StartPage;
int32_t BytesToRead;
uint32_t LocalOffset;
if ((OffsetInByte + NumByteToRead_up_to_SectorSize) > w25qxx.SectorSize)
BytesToRead = w25qxx.SectorSize - OffsetInByte;
else
BytesToRead = NumByteToRead_up_to_SectorSize;
StartPage = W25qxx_SectorToPage(Sector_Address) + (OffsetInByte / w25qxx.PageSize);
LocalOffset = OffsetInByte % w25qxx.PageSize;
do
{
W25qxx_ReadPage(pBuffer, StartPage, LocalOffset, BytesToRead);
StartPage++;
BytesToRead -= w25qxx.PageSize - LocalOffset;
pBuffer += w25qxx.PageSize - LocalOffset;
LocalOffset = 0;
} while (BytesToRead > 0);
#if (_W25QXX_DEBUG == 1)
printf("---w25qxx ReadSector Done\r\n");
W25qxx_Delay(100);
#endif
}
библиотеку качал отсюда, понятно что такие вещи лучше писать самому но у меня пока опыта маловата https://github.com/nimaltd/w25qxx