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

使用cubeMX,TIM PWM输入模式发现的一个问题

[复制链接]
wellsking 提问时间:2018-8-7 15:58 /
悬赏2ST金币未解决
TIM1的 PWM输入模式 捕获一个PWM的周期 及 占空比,想使用DMA,将读取CCR1 CCR2的数据到 两个数组Period[32]  Duty[32]。如下:
HAL_TIM_IC_Start_DMA(&htim1,TIM_CHANNEL_1,(uint32_t*)Period,32);
HAL_TIM_IC_Start_DMA(&htim1,TIM_CHANNEL_2,(uint32_t*)Duty,32);


由于第一次调用HAL_TIM_IC_Start_DMA(&htim1,TIM_CHANNEL_1,(uint32_t*)Period,32);,
已经对htim->State 赋值: htim->State = HAL_TIM_STATE_BUSY; (2)

第二次调用HAL_TIM_IC_Start_DMA(&htim1,TIM_CHANNEL_2,(uint32_t*)Duty,32); 就直接 从 return HAL_BUSY; (1) 退出。
TIM_CHANNEL_2 无法 启动。

不修改cubeMX  生成的函数情况下,
有其它的函数可以同时启动 两个TIM_CHANNEL吗?

HAL_StatusTypeDef HAL_TIM_IC_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, uint32_t *pData, uint16_t Length)
{
  if((htim->State == HAL_TIM_STATE_BUSY))
  {
     return HAL_BUSY; (1)
  }
  else if((htim->State == HAL_TIM_STATE_READY))
  {
    if((pData == 0U ) && (Length > 0U))
    {
      return HAL_ERROR;
    }
    else
    {
      htim->State = HAL_TIM_STATE_BUSY; (2)
    }
  }

..............

}

收藏 1 评论3 发布时间:2018-8-7 15:58

举报

3个回答
feixiang20 回答时间:2018-8-7 23:19:26
无法同时捕获吧

评分

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

查看全部评分

wellsking 回答时间:2018-8-8 09:08:26
是可以同时捕获的,
PWM输入模式就是为了同时捕获 频率,占空比。
目前我用下面的方法实现。
HAL_TIM_IC_Start_DMA(&htim1,TIM_CHANNEL_1,(uint32_t*)Period,32);
htim1.State = HAL_TIM_STATE_READY;
HAL_TIM_IC_Start_DMA(&htim1,TIM_CHANNEL_2,(uint32_t*)Duty,32);
bjdj0000 回答时间:2018-9-7 09:57:13
大神,CUBEMX界面是怎么配置的能? 能否截个图分享一下?

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版