OpenEdv-开源电子网

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

stm32cube的FreeRTOS在任务切换时自动输出pwm波

[复制链接]

1

主题

2

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2019-3-19
在线时间
2 小时
发表于 2019-3-19 19:09:46 | 显示全部楼层 |阅读模式
1金钱
各位论坛大神
我在做一个步进电机控制的平台,然后使用脉冲控制的步进电机驱动器
因为要控制输出方波的个数,我想通过pwm溢出中断计数实现,然后把开启pwm的函数放在一个由按键启动的任务中
但是我在调试时发现没有按键按下时pwm就自动输出了


我单步运行发现在自动循环的任务进行任务调度时pwm就开始输出了
下面是我的部分代码
这是无限循环的任务(优先级是LOW)

void StartLED0Task(void const * argument)
{
  /* USER CODE BEGIN StartLED0Task */
  /* Infinite loop */
  for(;;)
  {
      BSP_LED_Toggle(LED0);
    osDelay(500);
      
  }
这是按键控制的任务(优先级是Normal)

void StartLED1Task(void const * argument)
{
  /* USER CODE BEGIN StartLED1Task */
    osSemaphoreWait(LEDBinarySemHandle,osWaitForever);
  /* Infinite loop */
  for(;;)
  {
      osSemaphoreWait(LEDBinarySemHandle,osWaitForever);
      osDelay(80);
      if(HAL_GPIO_ReadPin(GPIOE,GPIO_PIN_3) == 0)
          {
               BSP_DriverX_Pulse(3);
              BSP_DriverY_Pulse(4);         
          BSP_LED_Toggle(LED1);         
      }
  }
我的pwm输出是用TIM3,配置如下

各位大神如果遇到过类似情况,希望能指点一下


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2019-3-20 02:26:17 | 显示全部楼层
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-22 23:22

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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