I'm using the STM32F103 device in a 48-pin package. I'm using the internal oscillator to clock the chip so I'd like to remap Port D pins 0 and 1 to GPIO lines. I use the following code to initialize them:
Code:
GPIO_PinRemapConfig(GPIO_Remap_PD01, DISABLE); GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_InitStruct.GPIO_Pin = GPIO_Pin_1; GPIO_Init(GPIOD, &GPIO_InitStruct); GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStruct.GPIO_Pin = GPIO_Pin_0; GPIO_Init(GPIOD, &GPIO_InitStruct); Later when I try to change the state of the output pin D0 and probe it with a multimeter, the voltage seems to stay at about 0.7V. This happens whether I set the pin to logic 1 or logic 0. All other GPIO pins work and toggle as intended. What could I be doing wrong? Thanks!
Posted on May 17, 2011 at 12:15Dear SJackson, _adrian_ As you have mentioned, the IO remap of PD0 / PD1 on OSCIN / OSCOUT is not working on The early Silicon revision A, In fact The remapping of PD0 / PD1 was done but the configuration of PD0 and PD1 is forced to output push-pull and their level is driven to 0 by the package options. The fix of this limitation was already identified and resolved in the official Silicon revision. Please contact ST Sales offices for more details about the availability for your Region. With best regards :)