Получилось вот с таким кодом. Но не могу понять откуда возникает первый непонятный байт, который я считываю в Dummy.
Может я это как-то не так понял?
Считывание ManufactureID
Код
volatile unsigned int ManID,MemType,MemType1,MemType2,MemSize;
void Flash_ReadType(void)
{
BYTE Dummy = Dummy;
FPIN_CLR(4,21);
SSP1DR = 0x9F;
SSP1DR = 0;
SSP1DR = 0;
SSP1DR = 0;
while ( !(SSP1SR & SSPSR_BSY) );
Dummy = SSP1DR; // Всегда 0xFF
ManID = SSP1DR;
MemType = SSP1DR;
MemSize = SSP1DR;
FPIN_SET(4,21);
}
Считывание 2-х байтного статусного регистра
Код
volatile unsigned int RegStat1,RegStat2;
void Flash_ReadStatus(void)
{
BYTE Dummy = Dummy;
FPIN_CLR(4,21);
SSP1DR = 0x05;
SSP1DR = 0;
while ( !(SSP1SR & SSPSR_BSY) );
Dummy = SSP1DR; // Всегда 0xFF
RegStat1 = SSP1DR;
RegStat2 = SSP1DR;
FPIN_SET(4,21);
}