ЧИТАЕТ СЕКТОР ДАННЫЕ BUFFER РЕЗУЛЬТАТ ОШИБКА НЕТ ОШИБОК uint8_t SD_REA

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
//ЧИТАЕТ СЕКТОР ДАННЫЕ В BUFFER: РЕЗУЛЬТАТ 1 - ОШИБКА 0 - НЕТ ОШИБОК
uint8_t SD_READ(uint32_t sector)
{
if (CADR_TYPE != SD_VER2HC) sector *= 512;
if (SPI_CMD(17, sector, 0x0, 0x00)) return 1;
CS();
R1 = 0;
while(SPI_SEND(0xFF) != 0xFE) //НАЧАЛО ДАННЫХ
{
if(R1++ > 0xFFFE)
{
DECS();
return 1;
}
}
for(R2 = 0; R2 < 512; R2++)
{
SPI_I2S_SendData(SPI3, 0xFF);
while(SPI_I2S_GetFlagStatus(SPI3, SPI_I2S_FLAG_RXNE) == RESET){}
BUFFER[R2] = SPI_I2S_ReceiveData(SPI3);
//BUFFER[R2]= SPI_SEND(0xFF);
}
//SPI_SEND(0xFF);
//SPI_SEND(0xFF);
//SPI_SEND(0xFF);
DECS();
return 0;
}