OpenEdv-开源电子网

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

STM32 TIM1的 PWM问题

[复制链接]

1

主题

3

帖子

0

精华

新手入门

积分
27
金钱
27
注册时间
2012-4-24
在线时间
0 小时
发表于 2012-4-24 21:06:05 | 显示全部楼层 |阅读模式

 原子哥你好,,请你帮我看看我下面的程序呢!!!想在PA8脚输出一个pwm信号,,可是我搞了好几天了就是不知是哪里的问题,就是出不来。。。

//PWM输出初始化
//arr:自动重装值
//psc:时钟预分频数
void PWM_Init(u16 arr,u16 psc)
{        
 RCC->APB2ENR |= 1<<11;       //TIM1时钟使能
 RCC->APB2ENR |= 1<<2;    
 GPIOA->CRH &= 0XFFFFFFF0; //PA8输出
 GPIOA->CRH |= 0X0000000b; //复用功能推挽输出
 GPIOA->ODR |= 1<<8;   //PA8上拉

 TIM1->ARR = arr;   //设定计数器自动重装值
 TIM1->SC = psc;   //预分频器不分频

 TIM1->CCMR1 |= 0<<0;   
 TIM1->CCMR1 |= 7<<4;   //CH1 PWM2模式  
 TIM1->CCMR1 |= 1<<3;
   
  TIM1->CCER |= 1<<0;   //OC1 输出使能   

 TIM1->CR1 = 0x0080;     //ARPE使能
 TIM1->CR1 |= 0x01;    //使能定时器1            
}

无尽感激!!!!谢谢了

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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-4-25 00:49:57 | 显示全部楼层
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

1

主题

3

帖子

0

精华

新手入门

积分
27
金钱
27
注册时间
2012-4-24
在线时间
0 小时
 楼主| 发表于 2012-4-25 13:51:29 | 显示全部楼层
可是原子哥。。我要的是PWM输出啊!!!不是时钟输出啊!!!
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-4-25 14:02:38 | 显示全部楼层
TIM1有个主输出使能。你仔细看看。不设置是无法输出的。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

1

主题

3

帖子

0

精华

新手入门

积分
27
金钱
27
注册时间
2012-4-24
在线时间
0 小时
 楼主| 发表于 2012-4-25 16:24:26 | 显示全部楼层
原子哥,,我找出来了。。是那个MOE没有使能导致的,,十分感谢!!!!!
回复 支持 反对

使用道具 举报

1

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
51
金钱
51
注册时间
2011-12-14
在线时间
0 小时
发表于 2012-12-8 00:42:01 | 显示全部楼层
我勒个去,果然是要设置MOE位为1...
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
21
金钱
21
注册时间
2012-4-18
在线时间
0 小时
发表于 2013-1-2 13:40:57 | 显示全部楼层
受益匪浅,我也遇到这个问题
回复 支持 反对

使用道具 举报

15

主题

115

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
203
金钱
203
注册时间
2012-11-26
在线时间
1 小时
发表于 2013-1-8 14:13:56 | 显示全部楼层
TIM1与TIM8  都要使能
回复 支持 反对

使用道具 举报

25

主题

127

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
265
金钱
265
注册时间
2012-11-29
在线时间
5 小时
发表于 2013-2-27 11:18:57 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
TIM_OCInitTypeDef  TIM_OCInitStructure;
 


void TIM1_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_PinRemapConfig(GPIO_FullRemap_TIM1   , ENABLE);

GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_9;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOE, &GPIO_InitStructure);



    /* -----------------------------------------------------------------------
    TIM3 Configuration: generate 4 WM signals with 4 different duty cycles:
    TIM3CLK = 18 MHz, rescaler = 0x0, TIM3 counter clock = 36 MHz
    TIM3 ARR Register = 999 => TIM3 Frequency = TIM3 counter clock/(ARR + 1)
    TIM3 Frequency = 36 KHz.
    TIM3 Channel1 duty cycle = (TIM3_CCR1/ TIM3_ARR)* 100 = 50%
    TIM3 Channel2 duty cycle = (TIM3_CCR2/ TIM3_ARR)* 100 = 37.5%
    TIM3 Channel3 duty cycle = (TIM3_CCR3/ TIM3_ARR)* 100 = 25%
    TIM3 Channel4 duty cycle = (TIM3_CCR4/ TIM3_ARR)* 100 = 12.5%
  ----------------------------------------------------------------------- */

  /* Time base configuration */
  TIM_TimeBaseStructure.TIM_Period = 10000;
  TIM_TimeBaseStructure.TIM_Prescaler = 14;  // TIMCLK/2
  TIM_TimeBaseStructure.TIM_ClockDivision = 0;
  TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Down;

  TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure);

  /* WM1 Mode configuration: Channel1*/
  TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
  TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
  TIM_OCInitStructure.TIM_Pulse = Z;
  TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;
 
  TIM_OC1Init(TIM1, &TIM_OCInitStructure);

  TIM_OC1PreloadConfig(TIM1, TIM_OCPreload_Enable);
   

  TIM_ARRPreloadConfig(TIM1, ENABLE);            
 /* TIM3 enable counter*/
  TIM_Cmd(TIM1, ENABLE);
  TIM_CtrlPWMOutputs(TIM1, ENABLE);//pwm输出使能,一定要记得打开

}
原子哥我的是什么问题啊
回复 支持 反对

使用道具 举报

2

主题

20

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2012-10-19
在线时间
0 小时
发表于 2013-10-29 21:15:11 | 显示全部楼层
回复【9楼】1059435488:
---------------------------------
8楼,你好!你的问题解决了吗?我也遇到同样的问题了,求赐教!
回复 支持 反对

使用道具 举报

11

主题

78

帖子

0

精华

初级会员

Rank: 2

积分
142
金钱
142
注册时间
2012-8-21
在线时间
0 小时
发表于 2013-12-15 22:52:30 | 显示全部楼层
我也弄了半天。看了这帖子一下子就明白了,谢谢啦。
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2013-12-22
在线时间
0 小时
发表于 2014-9-3 18:44:36 | 显示全部楼层
能不能把最后正确的程序贡献出来呀
回复 支持 反对

使用道具 举报

hu374635108 该用户已被删除
发表于 2014-9-16 11:10:02 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2013-12-22
在线时间
0 小时
发表于 2014-10-12 14:31:28 | 显示全部楼层
谢谢了,ok
回复 支持 反对

使用道具 举报

14

主题

164

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1861
金钱
1861
注册时间
2012-5-19
在线时间
286 小时
发表于 2015-1-30 17:01:40 | 显示全部楼层
回复【13楼】hu374635108:
---------------------------------
怎么我复制你的代码 后也没有产生波形?
回复 支持 反对

使用道具 举报

14

主题

164

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1861
金钱
1861
注册时间
2012-5-19
在线时间
286 小时
发表于 2015-1-31 11:32:54 | 显示全部楼层
回复【13楼】hu374635108:
---------------------------------
我的定时器 1 的通道 1 3 4都可以了 就是通道2搞不定 不知道什么原因

//PA9   TIM1_CH2   暂时未调通 估计是MAX3232连接上的原因
RCC->APB2ENR|=1<<11;       //TIM1时钟使能  

GPIOA->CRH&=0XFFFFFF0F;//PA9输出 
GPIOA->CRH|=0X000000B0;//复用功能推挽输出模式,最大速度50MHz     
GPIOA->ODR|=0<<9;//PA9上拉 

TIM1->ARR=arr;//设定计数器自动重装值  
TIM1->SC=psc;//预分频器不分频   72 000 000/[(psc+1)*(arr+1)] = 频率

TIM1->CCMR1|=7<<12;  //CH2 WM2模式    
TIM1->CCMR1|=1<<11; //CH2预装载使能     

TIM1->CCER|=1<<4;   //OC2 输出使能     

TIM1->CR1 |=1<<7;   //ARPE使能  
TIM1->CR1 |=1<<0;    //使能定时器1 

TIM1->BDTR|=1<<15;



这里搞定了是打开了串口1造成的  现在关闭串口1就可以了
回复 支持 反对

使用道具 举报

14

主题

164

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1861
金钱
1861
注册时间
2012-5-19
在线时间
286 小时
发表于 2015-1-31 12:17:50 | 显示全部楼层
回复【15楼】zhcj66:
---------------------------------
还要设置对应的TIM1->CCR1 = 30;
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-26 06:46

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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