新手入门
- 积分
- 10
- 金钱
- 10
- 注册时间
- 2019-3-19
- 在线时间
- 2 小时
|
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,配置如下
各位大神如果遇到过类似情况,希望能指点一下
|
|