请选择 进入手机版 | 继续访问电脑版
查看: 229|回复: 8

[已解决] STM32使用HAL产生PWM有问题

[复制链接]

该用户从未签到

1

主题

1

帖子

0

精华

新手上路

最后登录
2018-8-20
发表于 2018-8-10 10:20:00 | 显示全部楼层 |阅读模式
大家注意,STM32的HAL库有问题,所有的STM32的HAL库里的产生PWM时,如果要在TIMx_CHxN产生PWM时,都无法正常开启,我试了STM32F1系列的和STM32L4系列的,都会有有问题,如果使用在TIMx_CHx产生PWM时,不会有问题,发现HAL库中有个BUG,在stm32f1xx_hal_tim.c
中的TIM_OC1_SetConfig,TIM_OC2_SetConfig,TIM_OC3_SetConfig函数中有个  tmpccer &= ~TIM_CCER_CC1NE;需要改为  tmpccer |= TIM_CCER_CC1NE;才可以正常输出,大家使用是注意一下。
  2018年STM32线下培训时间表>>                    
回复

使用道具 举报

该用户从未签到

66

主题

1990

帖子

2

精华

社区小助手

最后登录
2018-8-20
发表于 2018-8-10 11:37:58 | 显示全部楼层
本帖最后由 wenyangzeng 于 2018-8-10 13:41 编辑

HAL把启动PWM这一步留给用户来操作,既然使用HAL,就不用进行寄存器操作模式了,而是:
HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_2);

这应该不是bug吧!


评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

回复 支持 反对

使用道具 举报

该用户从未签到

1

主题

72

帖子

0

精华

高级会员

最后登录
2018-8-20
发表于 2018-8-10 15:39:50 | 显示全部楼层
本帖最后由 jjbboox 于 2018-8-10 15:43 编辑

用定时器产生PWM,用过的表示毫无问题。PWM是太常用的东西了,如果有BUG也老早就解决了!
毕竟是库,请尊重一下ST的工程师的。

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

  2018年STM32线下培训时间表>>                    
回复 支持 反对

使用道具 举报

该用户从未签到

0

主题

75

帖子

0

精华

中级会员

最后登录
2018-8-17
发表于 2018-8-10 19:54:06 | 显示全部楼层
        HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1);
        HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_2);
        HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_3);
        HAL_TIMEx_PWMN_Start(&htim1, TIM_CHANNEL_1);
        HAL_TIMEx_PWMN_Start(&htim1, TIM_CHANNEL_2);
        HAL_TIMEx_PWMN_Start(&htim1, TIM_CHANNEL_3);
三个通道的PWM互补启动,添上这六句,就可以了

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

回复 支持 反对

使用道具 举报

该用户从未签到

81

主题

3803

帖子

0

精华

论坛元老

最后登录
2018-8-20
发表于 2018-8-11 00:40:43 | 显示全部楼层
.PWM输出功能时,捕获/比较寄存器TIMx_CC,注意"HAL_TIM_PWM_Start"和“HAL_TIM_PWM_Stop。
至于tmpccer |= TIM_CCER_CC1NE,还要防止错误造成将辅助通道关闭而不是开启。

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

  2018年STM32线下培训时间表>>                    
回复 支持 反对

使用道具 举报

该用户从未签到

0

主题

7

帖子

0

精华

新手上路

最后登录
2018-8-12
发表于 2018-8-11 15:10:13 | 显示全部楼层
用STD库吧,HAL库对配置要求太高了

评分

参与人数 1蝴蝶豆 +1 收起 理由
zero99 + 1

查看全部评分

回复 支持 反对

使用道具 举报

该用户从未签到

3

主题

713

帖子

0

精华

金牌会员

最后登录
2018-8-20
发表于 2018-8-11 17:27:12 | 显示全部楼层
用HAL库吧,STD库太麻烦,一不小心就罢工,还要搭上大把的时间

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

  2018年STM32线下培训时间表>>                    
回复 支持 反对

使用道具 举报

该用户从未签到

3

主题

713

帖子

0

精华

金牌会员

最后登录
2018-8-20
发表于 2018-8-12 10:45:38 | 显示全部楼层
jjbboox 发表于 2018-8-10 15:39
用定时器产生PWM,用过的表示毫无问题。PWM是太常用的东西了,如果有BUG也老早就解决了!
毕竟是库,请尊重 ...

“尊重一下ST的工程师”,支持,按流行语就是圈起来,要考的
回复 支持 反对

使用道具 举报

该用户从未签到

0

主题

28

帖子

0

精华

初级会员

最后登录
2018-8-20
发表于 2018-8-12 11:12:00 | 显示全部楼层
这个要自己多注意,不要老找库的麻烦

评分

参与人数 1蝴蝶豆 +1 收起 理由
zero99 + 1

查看全部评分

  2018年STM32线下培训时间表>>                    
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /3 下一条

小黑屋|手机版|Archiver|意法半导体STM32/STM8技术社区

GMT+8, 2018-8-20 16:22 , Processed in 0.166337 second(s), 12 queries , MemCache On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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