AnsweredAssumed Answered

Target get disconnected when a specific line is added to the code

Question asked by MaRiSiPāLa on Oct 8, 2013
Latest reply on Oct 8, 2013 by Clive One
hello friends,
for a requirement of my project, i had to drive an H-bridge motor driver using my STM32F3 DISCO and i implemented the following function just to configure the GPIOs associated with the motor controlling part (two PWM pins for enables and four outputs for motor directions) and i used it for months without any problem. today, when i was going to upload the code, it gives me an error saying 'No target connected' and i had to hold down the reset button, press the upload button and after about two seconds, release the reset button; in order to upload the code to the board. i also ran the code in the debugger and as it started to run, the debugger exits. 

/**
  * @brief  Initializes PWM1(Motor1) and PWM2(Motor2) on PA8 and PA9.
  *                     PA10, PA11, PA12, PA13 as digital IOs
  *                     PA10->motor_1A          PA11->motor_1B
     *                         PA12->motor_2A          PA13->motor_2B
  */
void GPIO_Init_Motor(void)
{     
     // Setup PWM outputs
     GPIO_InitTypeDef GPIO_InitStructure;
     
     RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);
     
     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9;
     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
     GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
     GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
     GPIO_Init(GPIOA, &GPIO_InitStructure);


     GPIO_PinAFConfig(GPIOA, GPIO_PinSource8, GPIO_AF_6); // TIM1_CH1 -> Motor1
     GPIO_PinAFConfig(GPIOA, GPIO_PinSource9, GPIO_AF_6); // TIM1_CH2 -> Motor2
     
     // Setup direction IOs
     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13;
     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
     GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
     GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
     GPIO_Init(GPIOA, &GPIO_InitStructure);     
     
}


after playing with the code for a while, i could narrow it down to where the error is coming from and found out that the "GPIO_Pin_13" part occurs the error. when i remove that part from the code, its working without the error. 

anyone there to point me in right direction to solve this problem??
thanks in advance
regards!

Outcomes