<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>LPC MicrocontrollersのトピックRe: SD card</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/SD-card/m-p/521431#M4187</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by embd02161991 on Thu Jul 16 22:20:06 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Have you tried the sdmmc example in lpcopen for LPC17xx ? The example can help as a starting point. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.nxp.com/external-link.jspa?url=https%3A%2F%2Fwww.lpcware.com%2Fcontent%2Fnxpfile%2Flpcopen-software-development-platform-lpc17xx-packages" rel="nofollow" target="_blank"&gt;https://www.lpcware.com/content/nxpfile/lpcopen-software-development-platform-lpc17xx-packages&lt;/A&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;NXP Technical Support&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Jun 2016 17:50:01 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-15T17:50:01Z</dc:date>
    <item>
      <title>SD card</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/SD-card/m-p/521430#M4186</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by shabnam on Mon Jul 13 00:21:03 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;hello dear all,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;i am working on a project for create a text file on SD card. i work on LPC1768. but it can't create a text file i receive this error: &lt;/SPAN&gt;&lt;STRONG&gt;A hard error occurred in the low level disk I/O layer&amp;nbsp;&amp;nbsp; &lt;/STRONG&gt;&lt;SPAN&gt; i write here my code, i don't know what is the problem. i attached my code. thanks&lt;/SPAN&gt;&lt;BR /&gt;&lt;DIV class="j-rte-table"&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca" style="border:1px solid black;background-color:#cacaca;border:1px solid black;background-color:#cacaca;background-color:#cacaca;border:1px solid black;"&gt; &lt;PRE&gt;/****************************************Copyright (c)****************************************************
**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
**
**--------------File Info---------------------------------------------------------------------------------
** File name:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; main.c
** Descriptions:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The File System application function
**
**--------------------------------------------------------------------------------------------------------
*********************************************************************************************************/

/* Includes ------------------------------------------------------------------*/
#include "ff.h"
#include "lpc17xx_uart.h"
#include "SPI_MSD_Driver.h"
#include &amp;lt;stdio.h&amp;gt;
#include &amp;lt;string.h&amp;gt;

#ifdef __GNUC__
&amp;nbsp; /* With GCC/RAISONANCE, small printf (option LD Linker-&amp;gt;Libraries-&amp;gt;Small printf
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set to 'Yes') calls __io_putchar() */
&amp;nbsp; #define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
&amp;nbsp; #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif /* __GNUC__ */

/* Private variables ---------------------------------------------------------*/
FATFS fs;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Work area (file system object) for logical drive */
FIL fsrc;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* file objects */&amp;nbsp;&amp;nbsp; 
FRESULT res;
UINT br;

char path[512]="0:";
uint8_t textFileBuffer[] = "Thank \r\n";&amp;nbsp;&amp;nbsp; 

/* Private function prototypes -----------------------------------------------*/
int SD_TotalSize(void);
void USART_Configuration(void);
FRESULT scan_files (char* path);


/*******************************************************************************
* Function Name&amp;nbsp; : Delay
* Description&amp;nbsp;&amp;nbsp;&amp;nbsp; : Delay Time
* Input&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : - nCount: Delay Time
* Output&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : None
* Return&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : None
* Attention : None
*******************************************************************************/
void&amp;nbsp; Delay (uint32_t nCount)
{
&amp;nbsp; for(; nCount != 0; nCount--);
}

/*******************************************************************************
* Function Name&amp;nbsp; : main
* Description&amp;nbsp;&amp;nbsp;&amp;nbsp; : Main program
* Input&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : None
* Output&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : None
* Return&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : None
* Attention : None
*******************************************************************************/
int main(void)
{
char A;

USART_Configuration();

if( _card_insert() == 0 )
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp; printf("-- SD card detected OK \r\n");
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; else
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("-- Please connect a SD card \r\n");
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while( _card_insert() != 0 );
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("-- SD card connection detected \r\n");
&amp;nbsp; Delay(0xffffff);
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
A=f_mount(0,&amp;amp;fs);
&amp;nbsp; printf("%d",A);
res = f_open( &amp;amp;fsrc , "0:/Demo.TXT" , FA_CREATE_ALWAYS | FA_OPEN_ALWAYS);
printf("%d",res);
&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( res == FR_OK )
&amp;nbsp;&amp;nbsp;&amp;nbsp; { 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Write buffer to file */
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; res = f_write(&amp;amp;fsrc, textFileBuffer, sizeof(textFileBuffer), &amp;amp;br);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
printf("%d/r/n",res);
printf("Demo.TXT successfully created&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; \r\n");
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*close file */
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; f_close(&amp;amp;fsrc);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; else if ( res == FR_EXIST )
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp; printf("Demo.TXT created in the disk&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; \r\n");
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

scan_files(path);
SD_TotalSize();
f_close(&amp;amp;fsrc);
&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Infinite loop */
&amp;nbsp;&amp;nbsp;&amp;nbsp; while (1)
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
}
void USART_Configuration(void)
{ 
&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32_t&amp;nbsp; Fdiv;
PINSEL_CFG_Type PinCfg;


/*
 * Initialize UART2 pin connect
 */
PinCfg.Funcnum = 1;
PinCfg.OpenDrain = 0;
PinCfg.Pinmode = 0;
PinCfg.Portnum = 0;
PinCfg.Pinnum = 10;
PINSEL_ConfigPin(&amp;amp;PinCfg);
PinCfg.Pinnum = 11;
PINSEL_ConfigPin(&amp;amp;PinCfg);

/* Initialize UART Configuration parameter structure to default state:
 * Baudrate = 115200bps
 * 8 data bit
 * 1 Stop bit
 * None parity
 */
LPC_SC-&amp;gt;PCONP = LPC_SC-&amp;gt;PCONP|(1&amp;lt;&amp;lt;24);&amp;nbsp; /* UART2 Power bit */

&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_UART2-&amp;gt;LCR = 0x83;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 8 bits, no Parity, 1 Stop bit */

&amp;nbsp;&amp;nbsp;&amp;nbsp; #define FOSC&amp;nbsp;&amp;nbsp;&amp;nbsp; 12000000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Õñµ´Æ÷ÆµÂÊ */

&amp;nbsp;&amp;nbsp;&amp;nbsp; #define FCCLK&amp;nbsp;&amp;nbsp; (FOSC&amp;nbsp; * 8)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Ö÷Ê±ÖÓÆµÂÊ&amp;lt;=100Mhz FOSCµÄÕûÊý±¶ */

&amp;nbsp;&amp;nbsp;&amp;nbsp; #define FPCLK&amp;nbsp;&amp;nbsp; (FCCLK / 4)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* ÍâÉèÊ±ÖÓÆµÂÊ FCCLKµÄ1/2 1/4 */

Fdiv = ( FPCLK / 16 ) / 115200 ;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*baud rate */

&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_UART2-&amp;gt;DLM = Fdiv / 256;
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_UART2-&amp;gt;DLL = Fdiv % 256;
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_UART2-&amp;gt;LCR = 0x03;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* DLAB = 0 */
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_UART2-&amp;gt;FCR = 0x07;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Enable and reset TX and RX FIFO. */
}


/*******************************************************************************
* Function Name&amp;nbsp; : USART_Configuration
* Description&amp;nbsp;&amp;nbsp;&amp;nbsp; : Configure USART1 
* Input&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : None
* Output&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : None
* Return&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : None
* Attention : None
*******************************************************************************/

/*******************************************************************************
* Function Name&amp;nbsp; : scan_files
* Description&amp;nbsp;&amp;nbsp;&amp;nbsp; : ËÑË÷ÎÄ¼þÄ¿Â¼ÏÂËùÓÐÎÄ¼þ
* Input&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : - path: ¸ùÄ¿Â¼
* Output&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : None
* Return&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : FRESULT
* Attention : ²»Ö§³Ö³¤ÎÄ¼þÃû
*******************************************************************************/
FRESULT scan_files (char* path)
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; FILINFO fno;
&amp;nbsp;&amp;nbsp;&amp;nbsp; DIR dir;
&amp;nbsp;&amp;nbsp;&amp;nbsp; int i;
&amp;nbsp;&amp;nbsp;&amp;nbsp; char *fn;
#if _USE_LFN
&amp;nbsp;&amp;nbsp;&amp;nbsp; static char lfn[_MAX_LFN * (_DF1S ? 2 : 1) + 1];
&amp;nbsp;&amp;nbsp;&amp;nbsp; fno.lfname = lfn;
&amp;nbsp;&amp;nbsp;&amp;nbsp; fno.lfsize = sizeof(lfn);
#endif

&amp;nbsp;&amp;nbsp;&amp;nbsp; res = f_opendir(&amp;amp;dir, path);
&amp;nbsp;&amp;nbsp;&amp;nbsp; if (res == FR_OK) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i = strlen(path);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (;;) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; res = f_readdir(&amp;amp;dir, &amp;amp;fno);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (res != FR_OK || fno.fname[0] == 0) break;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (fno.fname[0] == '.') continue;
#if _USE_LFN
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fn = *fno.lfname ? fno.lfname : fno.fname;
#else
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fn = fno.fname;
#endif
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (fno.fattrib &amp;amp; AM_DIR) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sprintf(&amp;amp;path&lt;I&gt;, "/%s", fn);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; res = scan_files(path);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (res != FR_OK) break;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; path&lt;I&gt; = 0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("%s/%s \r\n", path, fn);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; return res;
}

/*******************************************************************************
* Function Name&amp;nbsp; : SD_TotalSize
* Description&amp;nbsp;&amp;nbsp;&amp;nbsp; : ÎÄ¼þ¿Õ¼äÕ¼ÓÃÇé¿ö
* Input&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : None
* Output&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : None
* Return&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : ·µ»Ø1³É¹¦ ·µ»Ø0Ê§°Ü
* Attention : None
*******************************************************************************/
int SD_TotalSize(void)
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; FATFS *fs;
&amp;nbsp;&amp;nbsp;&amp;nbsp; DWORD fre_clust;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 

&amp;nbsp;&amp;nbsp;&amp;nbsp; res = f_getfree("0:", &amp;amp;fre_clust, &amp;amp;fs);&amp;nbsp; /* ±ØÐëÊÇ¸ùÄ¿Â¼£¬Ñ¡Ôñ´ÅÅÌ0 */
&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( res==FR_OK ) 
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp; /* Print free space in unit of MB (assuming 512 bytes/sector) */
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("\r\n%d MB total drive space.\r\n"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "%d MB available.\r\n",
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ( (fs-&amp;gt;n_fatent - 2) * fs-&amp;gt;csize ) / 2 /1024 , (fre_clust * fs-&amp;gt;csize) / 2 /1024 );

&amp;nbsp; return ENABLE;
}
else 
&amp;nbsp; return DISABLE;&amp;nbsp;&amp;nbsp; 
} 

/**
&amp;nbsp; * @brief&amp;nbsp; Retargets the C library printf function to the USART.
&amp;nbsp; * @param&amp;nbsp; None
&amp;nbsp; * @retval None
&amp;nbsp; */
PUTCHAR_PROTOTYPE
{
/* wait for current transmission complete - THR must be empty */
while (UART_CheckBusy(LPC_UART2) == SET);

UART_SendByte(LPC_UART2, ch);

return ch;
}

#ifdef&amp;nbsp; DEBUG
/*******************************************************************************
* @briefReports the name of the source file and the source line number
* where the CHECK_PARAM error has occurred.
* @param[in]file Pointer to the source file name
* @param[in]&amp;nbsp;&amp;nbsp;&amp;nbsp; line assert_param error line source number
* @returnNone
*******************************************************************************/
void check_failed(uint8_t *file, uint32_t line)
{
/* User can add his own implementation to report the file name and line number,
 ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */

/* Infinite loop */
while(1);
}
#endif

///*********************************************************************************************************
//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; END FILE
//*********************************************************************************************************/


//FATFS FatFs;&amp;nbsp;&amp;nbsp; /* Work area (file system object) for logical drive */

//int main (void)
//{
//&amp;nbsp;&amp;nbsp;&amp;nbsp; FIL fil;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* File object */
//&amp;nbsp;&amp;nbsp;&amp;nbsp; char line[82]; /* Line buffer */
//&amp;nbsp;&amp;nbsp;&amp;nbsp; FRESULT fr;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* FatFs return code */


//&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Register work area to the default drive */
//&amp;nbsp;&amp;nbsp;&amp;nbsp; f_mount(0,&amp;amp;FatFs);

//&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Open a text file */
//&amp;nbsp;&amp;nbsp;&amp;nbsp; fr = f_open(&amp;amp;fil, "message.txt", FA_READ);
//&amp;nbsp;&amp;nbsp;&amp;nbsp; if (fr) return (int)fr;

//&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Read all lines and display it */
//&amp;nbsp;&amp;nbsp;&amp;nbsp; while (f_gets(line, sizeof line, &amp;amp;fil))
//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(line);

//&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Close the file */
//&amp;nbsp;&amp;nbsp;&amp;nbsp; f_close(&amp;amp;fil);

//&amp;nbsp;&amp;nbsp;&amp;nbsp; return 0;
//}

&lt;/I&gt;&lt;/I&gt;&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;P&gt;&lt;STRONG&gt;Original Attachment has been moved to: &lt;A _jive_internal="true" href="https://community.nxp.com/docs/DOC-338094" rel="nofollow noopener noreferrer" target="_blank"&gt;fat.rar&lt;/A&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 17:50:00 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/SD-card/m-p/521430#M4186</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T17:50:00Z</dc:date>
    </item>
    <item>
      <title>Re: SD card</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/SD-card/m-p/521431#M4187</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by embd02161991 on Thu Jul 16 22:20:06 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Have you tried the sdmmc example in lpcopen for LPC17xx ? The example can help as a starting point. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.nxp.com/external-link.jspa?url=https%3A%2F%2Fwww.lpcware.com%2Fcontent%2Fnxpfile%2Flpcopen-software-development-platform-lpc17xx-packages" rel="nofollow" target="_blank"&gt;https://www.lpcware.com/content/nxpfile/lpcopen-software-development-platform-lpc17xx-packages&lt;/A&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;NXP Technical Support&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 17:50:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/SD-card/m-p/521431#M4187</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T17:50:01Z</dc:date>
    </item>
  </channel>
</rss>

