野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10090|回复: 5

步进电机控制——TIM4_CH4不能产生方波PWM

[复制链接]
发表于 2017-12-29 15:21:55 | 显示全部楼层 |阅读模式
本帖最后由 神话破灭 于 2017-12-29 15:40 编辑

请教一下:芯片STM32F103VCT6
我用TIM4_CH4通道产生方波来给步进电机驱动器的PUL+提供信号,在测量PD15脚没有波形输出。(PB9测过,也没有信号)


以下是我配置的代码,请问是哪里出了问题?

  1. [code]
  2. main.c文件:

  3. #include "pbdata.h"

  4. void RCC_Configuration(void);
  5. void NVIC_Configuration(void);

  6. int main(void)
  7. {
  8.    RCC_Configuration();
  9.    Tim1_PWM_Init();
  10.    NVIC_Configuration();
  11.    KEY_Init();
  12.   
  13.    while(1)
  14.    { }                 

  15. }

  16. void RCC_Configuration(void)
  17. {
  18.                     SystemInit();

  19.                 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE);
  20.                 RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);        
  21.                 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4,ENABLE);        
  22. }

  23. void NVIC_Configuration(void)
  24. {
  25.                    NVIC_InitTypeDef NVIC_InitStructure;

  26.                 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);

  27.                 NVIC_InitStructure.NVIC_IRQChannel = TIM4_IRQn;  
  28.                 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;   
  29.                 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;  
  30.                 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;         
  31.                 NVIC_Init(&NVIC_InitStructure);
  32. }


  33. tim_pwm.c文件:

  34. #include "pbdata.h"

  35. __IO uint16_t Pulse=500;

  36. void Tim1_PWM_Init(void)
  37. {
  38.         TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
  39.         TIM_OCInitTypeDef  TIM_OCInitStructure;
  40.         
  41.         //GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3,ENABLE);
  42.         GPIO_PinRemapConfig(GPIO_Remap_TIM4,ENABLE);
  43.         
  44.         TIM_TimeBaseStructure.TIM_Period = 0xFFFF;
  45.         TIM_TimeBaseStructure.TIM_Prescaler =72;
  46.         TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1 ;
  47.         TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
  48.         TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure);
  49.         
  50.         
  51.         TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_Toggle;
  52.         TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;  
  53.         TIM_OCInitStructure.TIM_Pulse = Pulse;
  54.         TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
  55.         TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Set;
  56.         TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCIdleState_Reset;
  57.         TIM_OC2Init(TIM4, &TIM_OCInitStructure);
  58.         
  59.         TIM_OC2PreloadConfig(TIM4, TIM_OCPreload_Disable);
  60.         
  61.         TIM_ITConfig(TIM4,TIM_IT_CC4,ENABLE);
  62.         TIM_Cmd(TIM4, ENABLE);
  63.         TIM_CtrlPWMOutputs(TIM4, ENABLE);
  64. }

  65. tim1_pwm.h文件:

  66. #ifndef _TIM1_PWM_H
  67. #define _TIM1_PWM_H

  68. #include "stm32f10x.h"

  69. #define PWM_Pin GPIO_Pin_15
  70. #define PWM_GPIO_Port GPIOD

  71. extern __IO uint16_t Pulse;

  72. void Tim1_PWM_Init(void);

  73. #endif

  74. stm32f10x_it.c文件中加了TIM4的中断处理:
  75. void TIM4_IRQHandler(void)
  76. {
  77.   if(TIM_GetITStatus(TIM4,TIM_IT_CC4)!=RESET)
  78.   {
  79.     TIM_ClearITPendingBit(TIM4,TIM_IT_CC4);
  80.     TIM_SetCounter(TIM4,0);
  81.     TIM_SetCompare4(TIM4,Pulse);
  82.   }        
  83. }

复制代码

[/code]

复制代码




TIM4.jpg
回复

使用道具 举报

 楼主| 发表于 2017-12-29 15:26:01 | 显示全部楼层
格式太乱了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-29 15:26:40 | 显示全部楼层
不知道怎样编辑,只有重发一个
回复 支持 反对

使用道具 举报

发表于 2017-12-29 16:41:43 | 显示全部楼层
用PWM例程试下,有配视频的,可按视频操作
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-30 09:14:54 | 显示全部楼层
flyleaf 发表于 2017-12-29 16:41
用PWM例程试下,有配视频的,可按视频操作

就是看后写的,有步进电机控制的视频吗
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-5-1 06:39 , Processed in 0.029445 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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