配置HSE为8Mhz,APB1为54Mhz; 打开左侧的下拉框Timers,点击TIM3选项;
打开PWM Channel1(通道一)和 PWM Channel2(通道二)选择为PWM Generation CH1和PWM Generation CH2,此时我们可得到两路频率相同的方波,因为他们用的是同一个定时器,如果需要生成不同频率的PWM波那么我们就需要开启两个不同的定时器。 Input Capture direct mode:输入直接捕获模式 Input Capture indirect mode:输入间接捕获模式Input Capture triggered by TRC:TRC触发输入捕获Output Compare No Output:输出比较无输出Output Compare CH1:输出比较CH1PWM Generation No Output:PWM生成无输出PWM Generation CH1:PWM生成CH1Forced Output CH1:强制输出CH1
设置完成后 点击Project Manager页面,输入工程名和工程位置,选择工具链和IDE为MDK-ARM,版本为5.27;
打开左侧Code Generater菜单勾选Generate peripheral initialization as a pair of'.c/.h'file per peripheral;
最后点击右上角的GENERATE CODE按钮后生成代码。 生成代码后打开工程文件夹,用Keil5打开工程。
编译 在while循环前初始化加入启动PWM输出HAL_TIM_PWM_Start(&htim3,TIM_CHANNEL_1); //启动定时器3-1的PWM输出HAL_TIM_PWM_Start(&htim3,TIM_CHANNEL_2); //启动定时器3-2的PWM输出 其中,第一个参数为TIM定时器名,第二个参数为通道名 运行,即可生成两路频率为1Khz,占空比分别为25%和50%的方波。 如果需要更改PWM波的占空比,可以使用__HAL_TIM_SetCompare()__HAL_TIM_SetCompare(&htim3, TIM_CHANNEL_1, 120);__HAL_TIM_SetCompare(&htim3, TIM_CHANNEL_2, 120); 其中,第一个参数为TIM定时器名,第二个参数为通道名,第三个参数为CCRx的值
|