你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

关于STM32输出精确PWM脉冲数的方法?  

[复制链接]
hongtusy 提问时间:2013-9-11 08:50 /
阅读主题, 点击返回1楼
收藏 5 评论36 发布时间:2013-9-11 08:50
36个回答
wjandsq 回答时间:2015-1-25 21:40:01
理论上是可行的,实际上的代码需要花费时间调试,精确控制脉冲个数的代码也都是公开的,但不在这个网站。
stary666 回答时间:2015-1-28 12:33:19
理论上是可行的,实际上的代码需要花费时间调试
wjandsq 回答时间:2015-1-28 17:04:29
uint16_t SRC_Buffer[20] = {
180, 180, 180, 180, 180, /* 1 */
180, 180, 180, 180, 180, /* 2 */
180, 180, 180, 180, 180, /* 3 */
180, 180, 180, 180, 180, /* 4 */
};

uint16_t SRC_Buffer2[32] = {
120, 120, 120, 120, /* 1 */
120, 120, 120, 120, /* 2 */
120, 120, 120, 120, /* 3 */
120, 120, 120, 120, /* 4 */
120, 120, 120, 120, /* 5 */
120, 120, 180, 120, /* 6 */
120, 120, 120, 120, /* 7 */
120, 120, 120, 120, /* 8 */
};

/* TIM1_CH3 PWM --------------------------------------------------------------*/
/* DMA1_Channel5_Total: DMA传输次数,每次传输发送20个脉冲(200KHz,总计100us) */
uint16_t DMA1_Channel5_Total = 0;
/* Flag_DMA1_Channel5_Sart: DMA启动标志,启动后清零 */
uint16_t Flag_DMA1_Channel5_Sart = 0;
/* Flag_TIM1_PWM3_Finish: TIM1_PWM3发送完毕标志,启动后清零,完成后置位 */
uint16_t Flag_TIM1_PWM3_Finish = 1;
/* Select_Motor_Driect: 选档电机运动方向 1: 正转 0: 反转 */
uint16_t Select_Motor_Driect = 1;

/* TIM3_CH1 PWM -----------------------------------------------------------*/
/* DMA1_Channel3_Total: DMA传输次数,每次传输发送20个脉冲(300KHz,总计100us) */
uint16_t DMA1_Channel3_Total = 0;
/* Flag_DMA1_Channel3_Sart: DMA启动标志,启动后清零 */
uint16_t Flag_DMA1_Channel3_Sart = 0;
/* Flag_TIM1_PWM3_Finish: TIM1_PWM3发送完毕标志,启动后清零,完成后置位 */
uint16_t Flag_TIM3_PWM1_Finish = 1;
/* SWitch_Motor_Driect: 换档电机运动方向 1: 正转 0: 反转 */
uint16_t Switch_Motor_Driect = 1;
斯普朗特 回答时间:2015-1-30 14:11:31
请问STM32F4的PWM输出是和F103一样给定了时钟通道挂接的GPIO端口,还是可以自己随便设呢?
xiaodc88 回答时间:2015-1-30 16:48:57
没想到好方法,所以精确控制一般没用PWM
wendy8888 回答时间:2015-2-10 15:58:56
我也遇到了上述问题求教
wendy8888 回答时间:2015-2-10 15:59:24
我也遇到了上述问题求教
_ilikerome_ 回答时间:2015-2-11 07:36:35
学习一下,谢谢!
759611 回答时间:2015-2-11 09:35:05
中断不要想了,其设计目的就不是干这个的
L墨迹 回答时间:2015-6-6 08:50:30
stephenking 发表于 2013-9-11 20:26
可以选择使用DMA来控制发送的脉冲数,最大可以65535个。如果你的脉冲宽度一致,则DMA地址不增加的方式传输 ...

可以详细说说方法吗,我想用DMA来控制脉冲输出个数,但搞不清思路
Owen 回答时间:2015-6-18 10:43:23
有点意思,楼主加油
李垚垚 回答时间:2017-4-12 15:41:06
帮你顶一下
Gonghuwei 回答时间:2017-6-7 14:48:53

有点意思,楼主加油.
帮你顶一下.
斗爸爸 回答时间:2017-6-7 16:34:21
为什么不用比较输出
shuolang126 回答时间:2017-6-8 13:30:43
定时器内部互联,一个PWM输出脉冲给另一个定时提供时钟,每来一个脉冲,计数器值+1,当+到指定个数后,产生一次中断,然后关闭PWM输出。  
参照https://wenku.baidu.com/view/f75e57c5cfc789eb162dc84b.html
如果测试能实现你的需求,请总结一下!

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版