自己做了个pwm_init.C文件,内容如下:
#include <stm32f10x_lib.h> /* STM32F10x Library Definitions */
#include "STM32_Init.h" /* STM32 Initialization */
void GPIO_cfg(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
//部分映射,将TIM3_CH2映射到PC7
// GPIO_PinRemapConfig(GPIO_FullRemap_TIM3, ENABLE);
GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3, ENABLE);
//选择引脚7
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;
//输出频率最大50MHz
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
//复用推挽输出
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
//GPIO_Init(GPIOB,&GPIO_InitStructure);
GPIO_Init(GPIOC,&GPIO_InitStructure);
}
都是用的库函数来赋值初始化。文件在KEIL uV4 编译环境能通过,见下描述:
compiling PWM_init.c...
PWM_init.c - 0 Error(s), 0 Warning(s).
但与工程一起连接编译则报以下错误,
KeiluV4-h.axf: Error: L6218E: Undefined symbol GPIO_Init (referred from pwm_init.o).
KeiluV4-h.axf: Error: L6218E: Undefined symbol GPIO_PinRemapConfig (referred from pwm_init.o).
查了很久,找不到原因, 第一次玩STM32 。还请高手指点迷津。 |