I am using STM32F103RCT6 to blink a LED which is connected to PA15 - JTDI in PU.
My GPIO Configuration is like this
GPIOA->CRH |= GPIO_CRH_MODE15; //Output mode, max speed 50 MHz.
GPIOA->CRH &= ~GPIO_CRH_CNF15; //General purpose output push-pull\
And I am trying to Blink Like this
#define LED_HIGH() (GPIOA->BSRR |= GPIO_BSRR_BR15) //LED High
#define LED_LOW() (GPIOA->BSRR |= GPIO_BSRR_BS15) //LED LOW
In datasheet it says
To free the Pin for GPIO we need to configure SWJ_CFG[2:0] either with 010 or 100. So for that i am configuring
AFIO->MAPR |= AFIO_MAPR_SWJ_CFG_1; //((uint32_t)0x02000000) as 010
Datasheet also says we need to do something with ODR/IDR registers but i am not getting correcty how to configure PA15 (or any JTAG pins) as GPIO.
The SWJ_CFG in AFIO_MAPR is given as
Any suggestion will be helpful.
Thank You in advance
Don't forget to enable the clocks for GPIOA
and AFIO
. Both can be enabled in RCC->APB2ENR
. As long as they are not enabled, register writes are ignored.
RCC->APB2ENR |= RCC_APB2ENR_AFIOEN | RCC_APB2ENR_IOPAEN;