OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4062|回复: 8

STM32F7系列PWM输出

[复制链接]

1

主题

6

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2014-8-5
在线时间
7 小时
发表于 2019-3-15 09:53:25 | 显示全部楼层 |阅读模式
1金钱
各位大神,请帮忙!
想要实现的功能是:输出一定数量的PWM后,停止PWM的输出。本打算使用HAL_TIM_PWM_Start_IT、HAL_TIM_PWM_Stop_IT,中断回调函数分别尝试使用HAL_TIM_PWM_PulseFinishedCallback、HAL_TIM_OC_DelayElapsedCallback,在线调试时,都跑进中断回调函数了,可是函数内的语句并未执行,不知道什么原因,请大神指点。
或者是有什么好的方法可以实现想要的功能。在线等,再次谢过。

最佳答案

查看完整内容[请看2#楼]

直接在更新中断里面计数 一个更新中断就是一个PWM。你要几个就直接在更新中断里面判断,然后关闭定时器就行的
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

35

主题

560

帖子

2

精华

资深版主

Rank: 8Rank: 8

积分
17769
金钱
17769
注册时间
2018-3-3
在线时间
523 小时
发表于 2019-3-15 09:53:26 | 显示全部楼层
zqy890520 发表于 2019-3-15 10:01
有输出,我想实现,输出N个PWM后,停止PWM的输出。不知道如何实现,请问您有什么建议吗?

直接在更新中断里面计数   一个更新中断就是一个PWM。你要几个就直接在更新中断里面判断,然后关闭定时器就行的
/*
*
*
*
*
*
*/
回复

使用道具 举报

35

主题

560

帖子

2

精华

资深版主

Rank: 8Rank: 8

积分
17769
金钱
17769
注册时间
2018-3-3
在线时间
523 小时
发表于 2019-3-15 09:57:51 | 显示全部楼层
现在有PWM输出了吗
回复

使用道具 举报

1

主题

6

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2014-8-5
在线时间
7 小时
 楼主| 发表于 2019-3-15 10:01:12 | 显示全部楼层
Psheng 发表于 2019-3-15 09:57
现在有PWM输出了吗

有输出,我想实现,输出N个PWM后,停止PWM的输出。不知道如何实现,请问您有什么建议吗?
回复

使用道具 举报

1

主题

6

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2014-8-5
在线时间
7 小时
 楼主| 发表于 2019-3-15 10:54:55 | 显示全部楼层
Psheng 发表于 2019-3-15 10:30
直接在更新中断里面计数   一个更新中断就是一个PWM。你要几个就直接在更新中断里面判断,然后关闭定时器 ...

我之前试过,不行。不知道是不是自己的设置不对。是不是TIMER初始化里要有HAL_TIM_Base_Init(&TIM3_Handler)以及HAL_TIM_Base_Start_IT(&TIM3_Handler)两个函数。回调函数是void        HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim),对吧?我是这样弄的,不进回调函数。
回复

使用道具 举报

35

主题

560

帖子

2

精华

资深版主

Rank: 8Rank: 8

积分
17769
金钱
17769
注册时间
2018-3-3
在线时间
523 小时
发表于 2019-3-16 09:56:38 | 显示全部楼层
zqy890520 发表于 2019-3-15 10:54
我之前试过,不行。不知道是不是自己的设置不对。是不是TIMER初始化里要有HAL_TIM_Base_Init(&TIM3_Handl ...

回调函数没进,那配置都有问题的。你试试PWM_START_IT看看
/*
*
*
*
*
*
*/
回复

使用道具 举报

1

主题

6

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2014-8-5
在线时间
7 小时
 楼主| 发表于 2019-3-18 13:33:00 | 显示全部楼层
Psheng 发表于 2019-3-16 09:56
回调函数没进,那配置都有问题的。你试试PWM_START_IT看看

谢谢您的指导,按您的第一个指导方法,实现了我想要的功能,谢谢。
最初本打算用PWM_START_IT,用的回调函数HAL_TIM_PWM_PulseFinishedCallback,能进回调函数,但是不执行回调函数的语句。请问您知道是什么原因吗?
回复

使用道具 举报

35

主题

560

帖子

2

精华

资深版主

Rank: 8Rank: 8

积分
17769
金钱
17769
注册时间
2018-3-3
在线时间
523 小时
发表于 2019-3-18 15:10:02 | 显示全部楼层
zqy890520 发表于 2019-3-18 13:33
谢谢您的指导,按您的第一个指导方法,实现了我想要的功能,谢谢。
最初本打算用PWM_START_IT,用的回调 ...

仿真看下咯,不执行是判断不成立吗
/*
*
*
*
*
*
*/
回复

使用道具 举报

1

主题

6

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2014-8-5
在线时间
7 小时
 楼主| 发表于 2019-3-18 16:04:51 | 显示全部楼层
Psheng 发表于 2019-3-18 15:10
仿真看下咯,不执行是判断不成立吗

不需要进行判断;
进入回调函数后,需要实现变量自加,可是就是不执行,打断点可以看到进回调函数了,可是变量一直为0,不自加。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-11 07:46

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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