OpenEdv-开源电子网

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

TIM3_CH2和TIM1_CH1同时各1输出路PWM波,但是为什么没有设置一个寄存器就会出只有TIM3的PWM波改变而TIM1的PWM波不变

[复制链接]

9

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
90
金钱
90
注册时间
2013-7-30
在线时间
0 小时
发表于 2014-7-4 22:30:56 | 显示全部楼层 |阅读模式
5金钱
初始化代码是这样的
[mw_shl_code=c,true]void TIM3_PWM_Init(u16 arr,u16 psc) { RCC->APB1ENR|=1<<1;//TIM3时钟使能 RCC->APB2ENR|=1<<2;//使能PORTA时钟 TIM3->SC=psc; //设置分频系数 TIM3->ARR=arr; //设置自动重装值 GPIOA->CRL&=0X0FFFFFFF; GPIOA->CRL|=0XB0000000;//设置为复用推挽输出,输出频率为50MHZ TIM3->CCMR1|=6<<12;//采用PWM模式1 TIM3->CCMR1|=1<<11;//CH2预装载使能 TIM3->CCER|=1<<4;//OC2输出使能 TIM3->CR1=0x0080;//ARPE使能 TIM3->CR1|=0x01; //使能定时器3 } void TIM1_PWM_Init(u16 arr,u16 psc) { RCC->APB2ENR|=1<<11;//使能TIM1时钟 RCC->APB2ENR|=1<<2;//使能PORTA时钟 TIM1->SC=psc; //设置分频系数 TIM1->ARR=arr; //设置自动重装值 GPIOA->CRH&=0XFFFFFFF0; GPIOA->CRH|=0X0000000B;//设置为复用推挽输出,输出频率为50MHZ TIM1->CCMR1|=6<<4; TIM1->CCMR1|=1<<3;//输出CH2预装使能 TIM1->CCER|=1<<0;//OC1输出使能 TIM1->CR1|=1<<7;//自动重装使能 TIM1->CR1|=1<<0;//使能定时器1 }[/mw_shl_code] [mw_shl_code=c,true]后来看了别人的代码在TIM1_PWM_Init()里面加了句 TIM1->BDTR|=1<<15;就两个都PWM波能同时变了,看了手册还是不明白,不懂,原子哥指点下,谢谢了[/mw_shl_code]

最佳答案

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

TIM1要使能MOE,这(TIM1->BDTR|=1<<15)就是使能MOE
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-7-4 22:30:57 | 显示全部楼层
TIM1要使能MOE,这(TIM1->BDTR|=1<<15)就是使能MOE
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-6 12:52

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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