This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Can't debug code as all pin gets configured as analog mode

I am using STM32F205RBT6, Keil 4.73 & Ulink2 & SWD communication

I was trying some test codes for low power mode.
One of app note says to configure all inputs pins as analog mode, by first enabling the clock & then after configuring in analog mode disable the clock to all pins.
I have written my code at last.

Now problem is since all pins gets configured including debug pins: SWCLK & SWDIO as analog. So first time I was able to debug the chip by loading code into it.
But after that since pins gets configured so I am not able to debug/load code anymore.
Error message comes "SWD communication failure."

1. I have switched off power supply & then again switched on to check , but cannot do that.
2. I had forcefully put reset line low & then connect the debugger.
Error message comes: "Could stop Cortex M3 device, so check JTAG cable"

How to remove that problem.
Application note : AN3430 by ST , Page 19

void main()
{
/* enable all peripherals clock */
    GPIOC_CLK_ENABLE();
    GPIOH_CLK_ENABLE();
    GPIOA_CLK_ENABLE();
    GPIOB_CLK_ENABLE();
    GPIOD_CLK_ENABLE();

/* delay after enabling peripheral */
    DELAY_AFTER_RCC_ENABLE();

/* Configure GPIO pins :   PC13 PC14 PC15 PC0
                           PC1  PC2  PC3  PC4
                           PC5  PC6  PC7  PC8
                           PC9  PC10 PC11 PC12 */
    GPIO_InitStructure.GPIO_Pin   =  GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15|GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4
                                    |GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11|GPIO_Pin_12;
    GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_AN;
    GPIO_InitStructure.GPIO_PuPd  = GPIO_PuPd_NOPULL;
    GPIO_Init(GPIOC, &GPIO_InitStructure);



/* Configure GPIO pins :   PH0 PH1 */
    GPIO_InitStructure.GPIO_Pin   =  GPIO_Pin_0|GPIO_Pin_1;
    GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_AN;
    GPIO_InitStructure.GPIO_PuPd  = GPIO_PuPd_NOPULL;
    GPIO_Init(GPIOH, &GPIO_InitStructure);




/* Configure GPIO pins :   PA0  PA1  PA2  PA3
                           PA4  PA5  PA6  PA7
                           PA8  PA9  PA10 PA11
                           PA12 PA13 PA14 PA15 */
    GPIO_InitStructure.GPIO_Pin   =  GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15|GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4
                                    |GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11|GPIO_Pin_12;
    GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_AN;
    GPIO_InitStructure.GPIO_PuPd  = GPIO_PuPd_NOPULL;
    GPIO_Init(GPIOA, &GPIO_InitStructure);




/* Configure GPIO pins :   PB0  PB1  PB2  PB10
                           PB11 PB12 PB13 PB14
                           PB15 PB3  PB4  PB5
                           PB6  PB7  PB8  PB9 */
    GPIO_InitStructure.GPIO_Pin   =  GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15|GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4
                                    |GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11|GPIO_Pin_12;
    GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_AN;
    GPIO_InitStructure.GPIO_PuPd  = GPIO_PuPd_NOPULL;
    GPIO_Init(GPIOB, &GPIO_InitStructure);




/* Configure GPIO pins :   PD2 */
    GPIO_InitStructure.GPIO_Pin   =  GPIO_Pin_2;
    GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_AN;
    GPIO_InitStructure.GPIO_PuPd  = GPIO_PuPd_NOPULL;
    GPIO_Init(GPIOD, &GPIO_InitStructure);

///* disable all peripherals clock */
    GPIOC_CLK_DISABLE();
    GPIOH_CLK_DISABLE();
   GPIOA_CLK_DISABLE();
    GPIOB_CLK_DISABLE();
    GPIOD_CLK_DISABLE();
}