说明:(只要是有关引脚的功能必须先配置GPIO 端口) 一.对于GPIO 编程 步骤:1.使能IO 口时钟。调用函数为 RCC_APB2PeriphClockCmd();(注意:结构体申明必须放在使能时钟语句之前) 2.初始化 IO 口参数。调用函数 GPIO_Init(); 3.操作 IO。 #include "led.h" void LED_Init(void) { //PB.5 GPIO_InitTypeDef GPIO_InitStructure; //定义GPIO 的初始化结构体 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOD, ENABLE);//使能相应的引脚时钟 /*******GPIO 结构体中的三个参数赋值********************/ GPIO_InitStructure. GPIO_Pin= GPIO_Pin_5; GPIO_InitStructure.GPIO_Speed= GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode= GPIO_Mode_Out_PP; GPIO_Init(GPIOB, &GPIO_InitStructure);//初始化GPIO 引脚PB.5 //PD.6 | PD.3 GPIO_InitStructure. GPIO_Pin= GPIO_Pin_6 | GPIO_Pin_3; GPIO_InitStructure.GPIO_Speed= GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode= GPIO_Mode_Out_PP; GPIO_Init(GPIOD, &GPIO_InitStructure);//初始化PD.6,PD.3 } 二.对于定时器TIMx 产生PWM 波编程 步骤:1.开启TIMx 时钟以及复用功能时钟,配置相关引脚为IO 复用输 出(若为默认引脚复用则可以不用配置)。 2.设置TIMx 通道 CHy 重映射到相应 IO 引脚上; 3.初始化 TIMx ,设置TIMx 的 ARR 和 PSC; 4.设置TIMx 的 PWM 模式,使能TIMx 的 CHy 输出; 5.使能TIMx ; 6.修改 TIMx _CCRy 来控制占空比。(可以修改 TIM_OCInitStru ctu re.TIM_Pu lse或调用函数 TIM_SetCompare2()). #include "tim.h" void TIM_PWM_Init(u16 aarr,u16 psc) { //PB.5-->TIM3_CH2 GPIO_InitTypeDef GPIO_InitStructure;//定义 GPIO 结构体 TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;//定义定时器TIM 结构体 TIM_OCInitTypeDef TIM_OCInitStructure;//定义输出比较结构体 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_AFIO, ENABLE); //开启GPIOB 时钟和 GPIO 复用时钟 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);//开启时钟TIM3 GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3, ENABLE); //Timer3 部 分 重 映 射 //TIM3_CH2->PB5 //注:默认是 TIM3_CH2->PA7 /**GPIO 引脚配置输出...