A rotina que achei,usa UART e testei uma rotina que le a capacidade do cartão,o resultado é uma variavel de 32 bits(sd_size).
Na rotina original,que é Chinesa e não sei se esta correta,o resultado é mostrado da seguinte forma:
- Código: Selecionar todos
printf("\n\rSD Card Size: %ld b\n\r",sd_size);
Isso me retorna "SD Card Size: -268435456 b"
Não parece correto.
Procurando na net,achei um trecho de código que parece que usa a mesma rotina,mas esta formatada assim:
- Código: Selecionar todos
LCD_ShowNum(164,150,sd_size>>20,4,16);//显示SD卡容量
Apenas aproveirei a idéia e usei assim:
- Código: Selecionar todos
printf("\n\rSD Card Size: %ld b\n\r",sd_size>>20,4,16);
Deste modo retornou;
SD Card Size: 3840 b
Esta ultima formatação esta correta?
Seria o retorno de 3.840 Gigas?