OpenEdv-开源电子网

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

门控输出确定pwm脉冲

[复制链接]

9

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
121
金钱
121
注册时间
2016-2-26
在线时间
23 小时
发表于 2016-3-22 16:35:56 | 显示全部楼层 |阅读模式
1金钱



(3)
  TIM_TimeBaseStructure.TIM_Period = 999;       //
  TIM_TimeBaseStructure.TIM_Prescaler = 84;     //1us一个计数,84m的时钟分频之后1us的周期;
  TIM_TimeBaseStructure.TIM_ClockDivision = 0;  //
  TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;//向上计数
  TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);                                
        
  TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;//PWM1 模式
  TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
  TIM_OCInitStructure.TIM_Pulse = 499;                        //TIM3 OC1 占空比为50%
  TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;   // 输出极性高
  TIM_OC1Init(TIM3, &TIM_OCInitStructure);
  
TIM_SelectOnePulseMode(TIM3, TIM_OPMode_Single);    //单脉冲模式TIM3 主模式
        
  TIM_SelectMasterSlaveMode(TIM3, TIM_MasterSlaveMode_Enable);  //同步设置
  TIM_SelectOutputTrigger(TIM3, TIM_TRGOSource_OC1Ref);        //OC1通道作为TRGO信号;

  TIM_TimeBaseStructure.TIM_Period = 99;                              //TIM1设置
  TIM_TimeBaseStructure.TIM_Prescaler = 84;
  TIM_TimeBaseStructure.TIM_ClockDivision = 0;
  TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
  TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);
        
  TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;       // PWM1模式
  TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
  TIM_OCInitStructure.TIM_Pulse = 49;                                    //占空比为50%
  TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;     //输出极性高
  TIM_OC1Init(TIM1, &TIM_OCInitStructure);

  TIM_SelectSlaveMode(TIM1, TIM_SlaveMode_Gated);                       
  TIM_SelectInputTrigger(TIM1, TIM_TS_ITR2);                                
  TIM_Cmd(TIM1, ENABLE);

  TIM_Cmd(TIM1, ENABLE);        
  TIM_CtrlPWMOutputs(TIM1, ENABLE);

使能相应时钟(1)

使能相应时钟(1)

初始化结构体(2)

初始化结构体(2)

最佳答案

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

一句说明也木有。。。。 是有问题求助, 还是要分享成功的代码?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11554
金钱
11554
注册时间
2014-4-1
在线时间
1317 小时
发表于 2016-3-22 16:35:57 | 显示全部楼层

一句说明也木有。。。。
是有问题求助,
还是要分享成功的代码?


回复

使用道具 举报

9

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
121
金钱
121
注册时间
2016-2-26
在线时间
23 小时
 楼主| 发表于 2016-3-22 16:38:05 | 显示全部楼层
初始化结构体中的GPIO_Mode=GPIO_Mode_AF;
回复

使用道具 举报

9

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
121
金钱
121
注册时间
2016-2-26
在线时间
23 小时
 楼主| 发表于 2016-3-22 16:41:32 | 显示全部楼层
这个哪里有问题吗? 我还通过主从 模式,的外部时钟模式即SMS=111,来计数脉冲,但是第一次上电初始化完成,输出的脉冲少一个。
回复

使用道具 举报

9

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
121
金钱
121
注册时间
2016-2-26
在线时间
23 小时
 楼主| 发表于 2016-3-22 16:42:53 | 显示全部楼层
复用为TIM1 口的时候  GPIO口设置的 下拉_DOWN没有用,检测为高。不清楚原因。
回复

使用道具 举报

9

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
121
金钱
121
注册时间
2016-2-26
在线时间
23 小时
 楼主| 发表于 2016-3-22 23:27:03 | 显示全部楼层
xuande 发表于 2016-3-22 16:40
一句说明也木有。。。。
是有问题求助,
还是要分享成功的代码?

我这边这么配置的,然后跑程序的时候,示波器检测不到pwm输出。找了好几个小时,不清楚少了什么东西。按理来说门极控制的话,从定时器不需要置位CEN为1,CEN不是由主定时器的高电平开启吗?为什么网上的历程是俩CEN要打开。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-19 17:35

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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