搜索
bottom↓
回复: 3

STM32F4的HAL库函数HAL_TIM_PWM_Stop可以让引脚空闲时固定电平?

[复制链接]

出130入129汤圆

发表于 2024-4-17 23:00:21 | 显示全部楼层 |阅读模式
本帖最后由 68336016 于 2024-4-17 23:44 编辑

stm32f401rct6, TIM3定时器的CH1和CH2两个通道配置为PWM。
我其实需要PWM暂停时候,引脚电平为低电平,现在用HAL_TIM_PWM_Stop函数暂停PWM,用逻辑分析仪反复抓取时序,PWM暂停时候引脚电平是低电平。
目前结果是我想要的,但是之前看过不少文章提到PWM空闲时候引脚电平不确定的问题,还有人说过STM32F407用HAL_TIM_PWM_Stop暂停PWM,引脚电平也不确定。

虽然我现在每次试,PWM暂停时候都是低电平,但是心里好像也不怎么完全确定了。

————————————————————————————————————
补充:电路后面还有光耦反相,我真正要的其实是PWM空闲时候,引脚输出要高电平才行

以下代码反复启停PWM。
  1.     for(;;)
  2.     {
  3.         HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_1);
  4.         __HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_1, 500);
  5.    
  6.         HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_2);
  7.         __HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_2, 800);
  8.         

  9.         osDelay(100);
  10.         HAL_TIM_PWM_Stop(&htim3, TIM_CHANNEL_1);
  11.         HAL_TIM_PWM_Stop(&htim3, TIM_CHANNEL_2);

  12.         osDelay(100);
  13.     }
复制代码




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入18汤圆

发表于 2024-4-18 09:07:15 | 显示全部楼层
对于STM32 ,你的PWM CH Polarity设置的为High,PWM还有一个idle state,一般定义为极性的反,所以PWM停上的时候是相反的极性,不会随机。

出130入129汤圆

 楼主| 发表于 2024-4-18 09:14:02 | 显示全部楼层
fcm32 发表于 2024-4-18 09:07
对于STM32 ,你的PWM CH Polarity设置的为High,PWM还有一个idle state,一般定义为极性的反,所以PWM停上 ...
(引用自2楼)

idle state只对TIM1有效,其它定时器无效,不管极性怎么设置,PWM停止后引脚都是低电平。

不过将占空比设置为0或者100,也能变通得将引脚固定电平输出

  1. #define IS_TIM_BREAK_INSTANCE(INSTANCE)  (((INSTANCE) == TIM1))  

  2. if (IS_TIM_BREAK_INSTANCE(TIMx))
  3.   {
  4.     /* Check parameters */
  5.     assert_param(IS_TIM_OCNIDLE_STATE(OC_Config->OCNIdleState));
  6.     assert_param(IS_TIM_OCIDLE_STATE(OC_Config->OCIdleState));

  7.     /* Reset the Output Compare and Output Compare N IDLE State */
  8.     tmpcr2 &= ~TIM_CR2_OIS1;
  9.     tmpcr2 &= ~TIM_CR2_OIS1N;
  10.     /* Set the Output Idle state */
  11.     tmpcr2 |= OC_Config->OCIdleState;
  12.     /* Set the Output N Idle state */
  13.     tmpcr2 |= OC_Config->OCNIdleState;
  14.   }
复制代码

出0入0汤圆

发表于 2024-4-18 14:10:58 | 显示全部楼层
PWM停止后设为强制为高电平模式
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-2 14:08

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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