OpenEdv-开源电子网

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

我想要用TIM3输出一段时间的两路PWM后 关闭PMW 库函数版 求助怎样关闭 新手菜鸟 附程序

[复制链接]

9

主题

44

帖子

0

精华

初级会员

Rank: 2

积分
108
金钱
108
注册时间
2014-10-29
在线时间
2 小时
发表于 2014-11-3 19:57:47 | 显示全部楼层 |阅读模式
5金钱
 int main(void)//主函数
 {

u16 pwmval1;//×ó???ú?¨?°?ì???é?ò???©
  u16 pwmval2;//?????ú
SystemInit();
delay_init(72);     //???±??????
NVIC_Configuration();
  HOARE_Init();
PWM_Init1(999,71);
PWM_Init2(999,71);

while (1)
{
//////////输出一段时间的PMW   我可以改变pwmval1 和pwmval2 控制PWM  
/////////问题是我需要过一段时间后关闭掉所有PMW  让电机停下来

}

这里是两个文件


void PWM_Init1(u16 arr,u16 psc)
{  
GPIO_InitTypeDef GPIO_InitStructure;
TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
TIM_OCInitTypeDef  TIM_OCInitStructure;

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA , ENABLE);  
                                                                         


   
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7; //TIM_CH2
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  //???????ì????
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);


TIM_TimeBaseStructure.TIM_Period = arr;
TIM_TimeBaseStructure.TIM_Prescaler =psc; 
TIM_TimeBaseStructure.TIM_ClockDivision = 0; 
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; 
TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);

 
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; 
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; 
TIM_OCInitStructure.TIM_Pulse = 0; 
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; 
TIM_OC2Init(TIM3, &TIM_OCInitStructure); 
TIM_OC2PreloadConfig(TIM3, TIM_OCPreload_Enable);  

TIM_ARRPreloadConfig(TIM3, ENABLE); //????TIMx??ARR?????¤×°???????÷

 
TIM_Cmd(TIM3, ENABLE);  //????TIMx???è
 

}


void PWM_Init2(u16 arr,u16 psc)
{  
GPIO_InitTypeDef GPIO_InitStructure;
TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
TIM_OCInitTypeDef  TIM_OCInitStructure;

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA , ENABLE);  
                                                                         


   
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6; //TIM_CH1
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  //???????ì????
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);


TIM_TimeBaseStructure.TIM_Period = arr;
TIM_TimeBaseStructure.TIM_Prescaler =psc; 
TIM_TimeBaseStructure.TIM_ClockDivision = 0; 
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; 
TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);

 
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; 
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; 
TIM_OCInitStructure.TIM_Pulse = 0; 
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
TIM_OC1Init(TIM3, &TIM_OCInitStructure);  
TIM_OC1PreloadConfig(TIM3, TIM_OCPreload_Enable);  

TIM_ARRPreloadConfig(TIM3, ENABLE); 

 
TIM_Cmd(TIM3, ENABLE); 
 

}

最佳答案

查看完整内容[请看2#楼]

最简单的就是: TIM_Cmd(TIM3, DISABLE);
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-11-3 19:57:48 | 显示全部楼层
最简单的就是:
TIM_Cmd(TIM3, DISABLE);
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

9

主题

44

帖子

0

精华

初级会员

Rank: 2

积分
108
金钱
108
注册时间
2014-10-29
在线时间
2 小时
 楼主| 发表于 2014-11-5 13:27:53 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
以上的程序产生PWM   为什么用这个无法同时输出两路PWM 呼吸灯?u8 dir;相关变量已经定义初始化
                delay_ms(8);  
if(dir)pwmval1++;
else pwmval1--;  
  if(pwmval1>200)dir=0;
if(pwmval1==0)dir=1;      
TIM_SetCompare1(TIM3,pwmval1);

               delay_ms(8);                     
if(dir)pwmval2++;
else pwmval2--;  
  if(pwmval2>200)dir=0;
if(pwmval2==0)dir=1;      
TIM_SetCompare2(TIM3,pwmval2);这两段程序在一个while中


或者这样:
                 delay_ms(8);                     
if(dir)pwmval2++;
else pwmval2--;  
  if(pwmval2>200)dir=0;
if(pwmval2==0)dir=1;      
TIM_SetCompare1(TIM3,pwmval1);
                TIM_SetCompare2(TIM3,pwmval2);                                 就是一直亮着
回复

使用道具 举报

9

主题

44

帖子

0

精华

初级会员

Rank: 2

积分
108
金钱
108
注册时间
2014-10-29
在线时间
2 小时
 楼主| 发表于 2014-11-5 13:28:33 | 显示全部楼层
回复【3楼】忘川:
---------------------------------
TIM_SetCompare1(TIM3,pwmval2); 
                TIM_SetCompare2(TIM3,pwmval2);  这样
回复

使用道具 举报

9

主题

44

帖子

0

精华

初级会员

Rank: 2

积分
108
金钱
108
注册时间
2014-10-29
在线时间
2 小时
 楼主| 发表于 2014-11-5 13:29:07 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
TIM_SetCompare1(TIM3,pwmval2);  
TIM_SetCompare2(TIM3,pwmval2);  这样同一个变量也不行
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-11-5 14:38:05 | 显示全部楼层
回复【3楼】忘川:
---------------------------------
直接下载我们例程试试。
另外你的delay是不是太短了?
搞长一点试试。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

9

主题

44

帖子

0

精华

初级会员

Rank: 2

积分
108
金钱
108
注册时间
2014-10-29
在线时间
2 小时
 楼主| 发表于 2014-11-5 14:41:56 | 显示全部楼层
回复【6楼】正点原子:
---------------------------------
还有你们的例程  我买了MINI stm32开发板  WM例程中 是A8输出的   我在PWM.c中改成A7或者其它管脚为什么没有效果  也是一直亮而已  灯是我另外接的  VCC gnd 互换过 依然是没有例程效果   例程只是在PWM.c中改成A7或者其它管脚
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-11-5 14:50:26 | 显示全部楼层
回复【7楼】忘川:
---------------------------------
 说明你改的还有问题。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

9

主题

44

帖子

0

精华

初级会员

Rank: 2

积分
108
金钱
108
注册时间
2014-10-29
在线时间
2 小时
 楼主| 发表于 2014-11-6 11:04:29 | 显示全部楼层
回复【8楼】正点原子:
---------------------------------
那应该怎样改?新手求教  改成输出多路呼吸灯
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-11-6 15:44:30 | 显示全部楼层
回复【9楼】忘川:
---------------------------------
慢慢学习。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-29 12:03

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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