Topic : Trace holds PB3?

Forum : ARM

Original Post
Post Information Post
January 9, 2014 - 10:53pm
Guest

I can't use PB3 pin as push-pull output on a STM32F100 (pin39 at LQFP48 case). I can see the right value in PortB ODR register at debug, but pin stucked at L. My only hint is:
pin39's default mapping is JTDO. For debug I use JTAG-DP disabled + SW-DP enabled setting, where PB3 is "free, but released only if not using asynchronous trace."
Trace is an ARM core feature, and couldn't find much info on that. Is it possible, that my pin39 is used as trace out?

I have the following initialisation code:

...
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | // Enable all GPIO's
RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD, ENABLE);
GPIO_PinRemapConfig ( GPIO_Remap_SWJ_JTAGDisable, ENABLE); //PA15, PB3, PB4 freed

GPIO_InitTypeDef G;
...
G.GPIO_Pin= GPIO_Pin_3; G.GPIO_Mode= GPIO_Mode_Out_PP; GPIO_Init(GPIOB, &G); //PB3 out
...