硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2399|回复: 4
收起左侧

STM32怎么输出精确数量的互补PWM

[复制链接]

1

主题

7

回帖

10

积分

新手上路

积分
10
发表于 2018-6-6 08:21:00 | 显示全部楼层 |阅读模式
我想用PWM输出4组互补的PWM,但是要求精确个数的PWM,比如,我要输出互补的PWM脉冲数量是10个。输出10个后关闭,我下次开启的时候再输出10个后关闭。我用高级定时器TIM1的重复计数寄存器的时候,给TIMx_RCR赋值9.根据手册应该会10吃益出后才会进中断。但是调试的时候,发现每次益出都进中断。还有不知道为什么,CC1IF~CC4IF的中断标志位一直是1.我CCxIE的中断使能位是关闭的。我用的是STM32L496的片子请教给我大神,解决。谢谢!
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115661
QQ
发表于 2018-6-7 19:09:43 | 显示全部楼层

回帖奖励 +2 个金币

这种固定个数的,使用定时器中断配置引脚IO电平不是很方便。
回复

使用道具 举报

1

主题

7

回帖

10

积分

新手上路

积分
10
 楼主| 发表于 2018-6-10 21:35:23 | 显示全部楼层
用定时器做是可以,但是我的PWM频率比较高在240K~300K,如果用定时器中断,会太过频繁的进中断,这样会不会影响其他功能的运行。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115661
QQ
发表于 2018-6-11 00:43:56 | 显示全部楼层
jiangyouzhi 发表于 2018-6-10 21:35
用定时器做是可以,但是我的PWM频率比较高在240K~300K,如果用定时器中断,会太过频繁的进中断,这样会不会 ...

F4系列处理300KHz中断没问题的,你需要保证你的中断里面函数的执行时间越短越好,最好直接寄存器操作。
回复

使用道具 举报

1

主题

7

回帖

10

积分

新手上路

积分
10
 楼主| 发表于 2018-6-11 08:34:06 | 显示全部楼层
eric2013 发表于 2018-6-11 00:43
F4系列处理300KHz中断没问题的,你需要保证你的中断里面函数的执行时间越短越好,最好直接寄存器操作。

好的,我用中断试试,谢谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-5-10 11:20 , Processed in 0.224251 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表