打印
[STM32F1]

PWM波输出

[复制链接]
115|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
earlmax|  楼主 | 2025-1-28 22:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    配置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的值

使用特权

评论回复
沙发
星辰大海不退缩| | 2025-1-30 10:33 | 只看该作者
while循环前初始化加入启动PWM输出

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

51

主题

1508

帖子

1

粉丝