This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Need Help for STM32

Hi I am Renjith.
I am very new to keil IDE and also STM32f4 Discovery.
While doing a GPIO project, i have got output through register configuration.
The same project was done using stm32 standard gpio library, its showing linking error, I have tried my level best but could not rectify, so kindly please help....

#include "stm32f4xx.h"
#include "stm32f4xx_rcc.h"
#include "stm32f4xx_gpio.h"

GPIO_InitTypeDef GPIO_InitDef;

int main(void)
{
        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);


        GPIO_InitDef.GPIO_Pin = GPIO_Pin_13 | GPIO_Pin_14;
        GPIO_InitDef.GPIO_Mode = GPIO_Mode_OUT;
        GPIO_InitDef.GPIO_OType = GPIO_OType_PP;
        GPIO_InitDef.GPIO_PuPd = GPIO_PuPd_NOPULL;
        GPIO_InitDef.GPIO_Speed = GPIO_Speed_100MHz;
        //Initialize pins
        GPIO_Init(GPIOD, &GPIO_InitDef);

        //volatile int i;
    while (1)
                {
                        GPIO_SetBits(GPIOD, GPIO_Pin_13 | GPIO_Pin_14);
    }
}

And i got this error
Rebuild target 'main'
compiling Main.c...
assembling startup_stm32f407xx.s...
compiling system_stm32f4xx.c...
linking...
.\Objects\main.axf: Error: L6218E: Undefined symbol GPIO_Init (referred from main.o).
.\Objects\main.axf: Error: L6218E: Undefined symbol GPIO_SetBits (referred from main.o).
.\Objects\main.axf: Error: L6218E: Undefined symbol RCC_AHB1PeriphClockCmd (referred from main.o).
Not enough information to list image symbols.
Finished: 1 information, 0 warning and 3 error messages.
".\Objects\main.axf" - 3 Error(s), 0 Warning(s).
Target not created.
Build Time Elapsed: 00:00:04

Please help me to find a solution.

Parents
  • Hi,

    Which development tools are you using?

    If it is Keil uVision, you can either add the HAL sources library in your project or via the manage run-time environment component. You can validate that but you are compiling so should be good.

    You need to had the preprocessor define STM32F407xx and STM32F4.

    You don't need to include specifically the peripheral headers, simply use #include <stm32f4xx_hal.h>.

    The last two are my guesses.

    Hope it works out.

    Regards,
    Keaven

Reply
  • Hi,

    Which development tools are you using?

    If it is Keil uVision, you can either add the HAL sources library in your project or via the manage run-time environment component. You can validate that but you are compiling so should be good.

    You need to had the preprocessor define STM32F407xx and STM32F4.

    You don't need to include specifically the peripheral headers, simply use #include <stm32f4xx_hal.h>.

    The last two are my guesses.

    Hope it works out.

    Regards,
    Keaven

Children