
大家好,我正在写个LED的闪烁工具,在使用“GPIO_SetBits(GPIOA, GPIO_PIN_8);”编译时出现如下错误,请大神指教: led22\led22.axf: Error: L6218E: Undefined symbol GPIO_ResetBits (referred from main.o). gpio 初始化没有问题: static void MX_GPIO_Init(void) { GPIO_InitTypeDef GPIO_InitStruct; /* GPIO Ports Clock Enable */ __HAL_RCC_GPIOF_CLK_ENABLE(); __HAL_RCC_GPIOA_CLK_ENABLE(); /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(GPIOA, GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11 |GPIO_PIN_12|led1_Pin|led2_Pin, GPIO_PIN_RESET); /*Configure GPIO pins : PA8 PA9 PA10 PA11 PA12 led1_Pin led2_Pin */ GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11 |GPIO_PIN_12|led1_Pin|led2_Pin; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); } 工具: IDE-Version: μVision V5.20.0. License Information: amba AutoBVT Microsoft LIC=---- Tool Version Numbers: Toolchain: MDK-Lite Version: 5.20 Toolchain Path: C:\Keil_v5\ARM\ARMCC\Bin C Compiler: Armcc.exe V5.06 update 2 (build 183) Assembler: Armasm.exe V5.06 update 2 (build 183) Linker/Locator: ArmLink.exe V5.06 update 2 (build 183) Library Manager: ArmAr.exe V5.06 update 2 (build 183) Hex Converter: FromElf.exe V5.06 update 2 (build 183) CPU DLL: SARMCM3.DLL V5.20 Dialog DLL: DARMCM1.DLL V1.14.0.0 Target DLL: NULink\Nu_Link.dll V1.31 Dialog DLL: TARMCM1.DLL V1.10.0.0 |
从你初始化代码来看,工程中使用的是HAL库,而GPIO_SetBits()这个函数是源自的标准库的。
例如IO口输出电平设置:
标准库 : GPIO_SetBits(GPIOA, GPIO_Pin_8);
HAL库 :HAL_GPIO_WritePin(GPIOA, GPIO_PIN_8, GPIO_PIN_SET);
建议你移植的时候,统一使用一个官方库。