Necesito usar PB4 como un pin de salida digital GPIO normal. Tengo una placa diseñada especialmente donde este pin está conectado a la CS de un dispositivo SPI, por lo que no es posible usar otro pin.
Estoy usando la HAL para desarrollar el firmware. El código que utilizo para configurar GPIO es:
__HAL_AFIO_REMAP_SWJ_NONJTRST();
__HAL_RCC_GPIOB_CLK_ENABLE();
GPIO_InitTypeDef config_gpio = {0};
config_gpio.Pin = GPIO_PIN_4;
config_gpio.Mode = GPIO_MODE_OUTPUT_PP;
config_gpio.Pull = GPIO_NOPULL;
config_gpio.Speed = GPIO_SPEED_FREQ_HIGH;
HAL_GPIO_Init(GPIOB, &config_gpio);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_4, GPIO_PIN_RESET);
Después de eso, PB4 siempre es alto y no puedo configurarlo bajo, probablemente porque se comporta como NJTRST, por lo que no puedo usarlo como una salida normal.
Parece que la macro __HAL_AFIO_REMAP_SWJ_NONJTRST () no hace nada.