AnsweredAssumed Answered

SDcard and LCD ?

Question asked by H.Rick on Apr 14, 2014
Latest reply on Apr 17, 2014 by H.Rick
Guys,

I have a question about SDcard and LCD initialization ,
Everytime I intialize LCD after SDcard,

SDcard stopped working, is it because of port clock ?
Thanks
SDcard initialization :
01.void SD_LowLevel_Init(void)
02.{
03.  GPIO_InitTypeDef  GPIO_InitStructure;
04. 
05.  /*!< GPIOC and GPIOD Periph clock enable */
06.  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD | SD_DETECT_GPIO_CLK, ENABLE);
07. 
08.  /*!< Configure PC.08, PC.09, PC.10, PC.11, PC.12 pin: D0, D1, D2, D3, CLK pin */
09.  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_12;
10.  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
11.  //GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
12.  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
13.  GPIO_Init(GPIOC, &GPIO_InitStructure);
14. 
15.  /*!< Configure PD.02 CMD line */
16.  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
17.  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
18.  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
19.  GPIO_Init(GPIOD, &GPIO_InitStructure);
20. 
21.  /*!< Configure SD_CD pin: SD Card detect pin */
22.  GPIO_InitStructure.GPIO_Pin = SD_DETECT_PIN;
23.  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
24.  GPIO_Init(SD_DETECT_GPIO_PORT, &GPIO_InitStructure);
25.   
26.  /*!< Enable the SDIO AHB Clock */
27.  RCC_AHBPeriphClockCmd(RCC_AHBPeriph_SDIO, ENABLE);
28. 
29.  /*!< Enable the DMA2 Clock */
30.  RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA2, ENABLE);
31.}
LCD initialization :
01.static void LCD_CtrlLinesConfig(void)
02.{
03.  GPIO_InitTypeDef GPIO_InitStructure;
04. 
05.  /* Enable FSMC, GPIOD, GPIOE and AFIO clocks */
06.  RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, ENABLE);
07. 
08.  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOE | RCC_APB2Periph_AFIO, ENABLE);
09.                         
10.  /* PE.07(D4), PE.08(D5), PE.09(D6), PE.10(D7), PE.11(D8), PE.12(D9),
11.     PE.13(D10), PE.14(D11), PE.15(D12) */
12.  GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 |
13.                                 GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 |
14.                                 GPIO_Pin_15;
15.  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
16.  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
17.  GPIO_Init(GPIOE, &GPIO_InitStructure);
18. 
19.  /* PD.00(D2), PD.01(D3), PD.04(RD), PD.5(WR), PD.7(CS), PD.8(D13), PD.9(D14),
20.     PD.10(D15), PD.11(RS) PD.14(D0) PD.15(D1) */
21.  GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_7 |
22.                                 GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11 |
23.                                 GPIO_Pin_14 | GPIO_Pin_15;
24.  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
25.  //GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
26.  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
27.  GPIO_Init(GPIOD, &GPIO_InitStructure);
28.}

Outcomes