打印
[应用相关]

STM32使用HAL产生PWM有问题

[复制链接]
693|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
两只袜子|  楼主 | 2021-2-8 10:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

大家注意,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;才可以正常输出,大家使用是注意一下。

使用特权

评论回复
评论
香水城 2021-2-9 16:43 回复TA
HAL库的话,互补通道的PWM输出函数调用实现楼下laocuo1142给出的。 至于配置,建议使用CubeMx实现 方便得很。 
沙发
laocuo1142| | 2021-2-8 11:16 | 只看该作者
   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互补启动,添上这六句,就可以了

使用特权

评论回复
板凳
flycamelaaa| | 2021-2-8 11:16 | 只看该作者
HAL把启动PWM这一步留给用户来操作,既然使用HAL,就不用进行寄存器操作模式了,而是:
HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_2);

这应该不是bug吧!

使用特权

评论回复
地板
powerantone| | 2021-2-8 11:16 | 只看该作者
用定时器产生PWM,用过的表示毫无问题。PWM是太常用的东西了,如果有BUG也老早就解决了!
毕竟是库,请尊重一下ST的工程师的。

使用特权

评论回复
5
stormwind123| | 2021-2-8 11:18 | 只看该作者
.PWM输出功能时,捕获/比较寄存器TIMx_CC,注意"HAL_TIM_PWM_Start"和“HAL_TIM_PWM_Stop。
至于tmpccer |= TIM_CCER_CC1NE,还要防止错误造成将辅助通道关闭而不是开启。

使用特权

评论回复
6
probedog| | 2021-2-8 11:18 | 只看该作者
用STD库吧,HAL库对配置要求太高了

使用特权

评论回复
7
classroom| | 2021-2-8 11:19 | 只看该作者

用HAL库吧,STD库太麻烦,一不小心就**,还要搭上大把的时间

使用特权

评论回复
8
七毛钱| | 2021-2-8 11:19 | 只看该作者
不是有问题,而是TIMx_CHxN是需要重映射的 ,TIMx_CHx这种是stm32默认的,直接开启就好,如果要使用就必须重映射到相应的管脚上,不然是无法使用的。把相关的重映射函数添加就好了

使用特权

评论回复
9
豌豆爹| | 2021-2-8 11:20 | 只看该作者

这个要自己多注意,不要老找库的麻烦

使用特权

评论回复
10
renzheshengui| | 2021-3-2 23:13 | 只看该作者
也就是说也不算是问题 是吗

使用特权

评论回复
11
wakayi| | 2021-3-2 23:14 | 只看该作者
用cube就能直接生成 很方便

使用特权

评论回复
12
wowu| | 2021-3-2 23:15 | 只看该作者
算是一种打补丁了

使用特权

评论回复
13
xiaoqizi| | 2021-3-2 23:17 | 只看该作者
std库是什么库啊

使用特权

评论回复
14
木木guainv| | 2021-3-2 23:20 | 只看该作者
可以小小的补救一下

使用特权

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

本版积分规则

2001

主题

7028

帖子

10

粉丝